Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LINQtoCSV正在寻找将csv文件分块到多个数据结构的方法_C#_Linq - Fatal编程技术网

C# LINQtoCSV正在寻找将csv文件分块到多个数据结构的方法

C# LINQtoCSV正在寻找将csv文件分块到多个数据结构的方法,c#,linq,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

我正在寻找一种创造性的方法,将一个多格式的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、8099)表示。记录类型为60的行表示订单标题,并在第4列中包含跟踪号。订单id显示在记录类型60和70的第一列中。所以我有一个订单和多个包裹

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

这并不像我最初想的那么琐碎,现在我已经盯着看了足够长的时间,我觉得我在树上迷路了


如果您有任何建议,我们将不胜感激。

必须是Linq吗

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


然后,您可以检查相应数组项的值,并使用这些值填充数据对象。

这不是SSV吗?我应该澄清一下,我不是在玩我自己的ssv。我正在使用LINQtoCSV,但似乎没有一个好的方法来做到这一点。。。至少就我所知。但我会看看FileHelpers,看看这是否符合我的需要。谢谢。文件助手做到了。谢谢如果可以的话,我会把它作为答案。只要你不必逃跑;'在实际数据中,假设数据与显示的数据相似,那么这可能会起作用。CSV远没有大多数人想象的那么简单,特别是在允许任意内容的情况下。