LINQtoCSV正在寻找一种将csv文件分块为多个数据结构的方法

时间:2013-04-17 05:10:48

标签: c# linq

我正在寻找一种创造性的方法,将多格式csv文件基本上分成数据结构。

例如,这是我的csv

FILEHEADER;00;RSRGP;12345;20130415;
542740;60;FRED ROGERS;1Z7539320359483792;4000001388;20130415;0000000800;0000000000;UPS;Grnd;
542740;70;511-59049-019;00001;00001;
542740;80;000000001;000000001;
542740;60;FRED ROGERS;1Z753932032184736528;4000002092;20130415;0000000000;0000000000;UPS;Grnd;
542740;70;511-56957-019;00001;00001;
542740;70;511-58714-019;00002;00002;
542740;70;511-58715-188;00001;00001;
542740;70;511-58717-019;00002;00002;
542740;70;511-58722-188;00001;00001;
542740;80;000000007;000000007;
FILETRAILER;99;0000022;

如您所见,csv中有不同的记录类型。这通常由第二列(00,60,70,80,99)表示。记录类型为60的行表示订单标题,并在第4列中包含跟踪号。订单ID在记录类型60和70的第一列中指示。因此,我有一个包含多个包的订单。

我想要一个好方法来获取第一个订单标题及其关联的订单行项目(记录类型70)并将其推送到数据结构中,然后获取下一个订单标题及其关联的订单项并将其推入另一种相同类型的数据结构。

这并不像我最初的想法那么微不足道,现在我一直盯着我认为自己迷失在树林里。

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

是否必须是Linq?

您可以逐行读取值,然后使用行/字符串的.split(';')方法将其拆分为子字符串数组。

然后,您可以检查相应数组条目的值,并使用它们来填充数据对象。