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

本文关键字:文件 方法 数据结构 csv 寻找 一种 LINQtoCSV | 更新日期: 2023-09-27 18:09:38

我正在寻找一种创造性的方法,基本上将多格式的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)并将其推入数据结构,然后获取下一个订单标题及其关联的行项目并将其推入相同类型的另一个数据结构。

这并不像我一开始想的那么微不足道,现在我盯着看了很长时间,我觉得我在树林里迷路了。

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

一定是Linq吗?

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

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