分组文件的数据行

时间:2014-07-21 22:05:07

标签: 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                                      Yes       4     

注意Bo在这个例子中有三行,他的行甚至可以分散在文件中,我的意思是他们不需要一个接一个地顺序执行。

我想为每个Person解析这个文件,我知道它是一个独特的人是他的名字和ID的组合,所以在这个例子中Bo的三行他的信息就在其中,例如第一行有他的重量,第二行有他的薪水等...所以我在一个地方收集与每个人相关的所有行的方法,这样我就可以将他所有的信息放在一个地方所以我可以去填充我的数据库表在那。 您建议使用哪些结构和算法?

1 个答案:

答案 0 :(得分:0)

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);

然后你必须编写一些逻辑来合并来自每个IGrouping<>的行,但这应该是它的要点。当然,您还需要解析int和其他类型,但同样,这应该是它的要点。