C# 对文件的数据行进行分组
我有一个以制表符分隔的文本文件,其结构如下:C# 对文件的数据行进行分组,c#,C#,我有一个以制表符分隔的文本文件,其结构如下: Name ID Address Car Weight Salary Married Kids Bo 1234 123 Main Nissan 190 Bo 1234 123 Main 85000 John 456 5th Ave Jag 176 99000 No 1 Bo 1234
Name ID Address Car Weight Salary Married Kids
Bo 1234 123 Main Nissan 190
Bo 1234 123 Main 85000
John 456 5th Ave Jag 176 99000 No 1
Bo 1234 Yes 4
注意,在这个示例中,Bo有三行,他的行甚至可以分散在文件中,我的意思是它们也不需要一行接一行地顺序排列
我想为每个人解析这个文件,我知道它是唯一的人的方式是他的名字和ID的组合,所以在这个例子中,Bo的信息包括三行,例如第一行有他的体重,第二行有他的薪水,等等。。。因此,我正在寻找一种方法,在一个地方收集与每个人相关的所有行,这样我就可以在一个地方拥有他的所有信息,这样我就可以根据这些信息填充我的数据库表。
你建议采用什么结构和算法
return File.ReadAllLines(path).Skip(1).Select(c =>
{
var split = c.Split('\t');
return new {
Name = split[0],
ID = split[1],
Address = split[2],
Car = split[3],
Weight = split[4],
Salary = split[5],
Married = split[6],
Kids = split[7],
};
}).GroupBy(c => c.Name);
然后,您必须编写一些逻辑来合并来自每个iGroup的行,但这应该是它的要点。当然,您还需要解析int和其他类型,但同样,这应该是它的要点。我认为您已经超越了自己。首先,解析文件。把它放入一个结构中,比如说一个自定义类的列表,每个列都有属性。然后使用linq合并数据应该不难。