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合并数据应该不难。