我有一个制表符分隔的文本文件,结构如下:
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的三行他的信息就在其中,例如第一行有他的重量,第二行有他的薪水等...所以我在一个地方收集与每个人相关的所有行的方法,这样我就可以将他所有的信息放在一个地方所以我可以去填充我的数据库表在那。 您建议使用哪些结构和算法?
答案 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
和其他类型,但同样,这应该是它的要点。