我有很大的.csv文件,我想把它们完全按照.csv文件中的样子放入列表中
示例.csv文件行将为
1141825007047,2019-02-18,02:55,"US","ATL","LAX","0","IAD","ORD","UA","UA236,UA208","UA2291,UA1155",2019-03-24 14:25,2019-03-24 22:20,2019-04-14 22:45,2019-04-15 08:54
当我使用CsvHelper并设置如下参数时:
csv.Configuration.BadDataFound = null;
csv.Configuration.IgnoreQuotes = true;
csv.Configuration.Delimiter = ",";然后像"UA236,UA208“这样的值被分成两列,这在我的例子中是不正确的。
如果我将params设置为:
csv.Configuration.BadDataFound = null;
csv.Configuration.IgnoreQuotes = false;
csv.Configuration.Delimiter = ",";然后,列的格式是正确的,但它删除了所有引号。引用是动态的,有些栏目会有,有些则不会。
所需输出应为字符串列表:
1141825007047
2019-02-18
02:55
"US"
"ATL"
"LAX"
"0"
"IAD"
"ORD"
"UA"
"UA236,UA208"
"UA2291,UA1155"
2019-03-24 14:25
2019-03-24 22:20
2019-04-14 22:45
2019-04-15 08:54按照要求,添加一些代码:
using (StreamReader reader = new StreamReader(myStream))
{
using (CsvReader csv = new CsvReader(reader))
{
csv.Configuration.BadDataFound = null;
csv.Configuration.IgnoreQuotes = false;
csv.Configuration.Delimiter = ",";
while (csv.Read())
{
List<string> values = new List<string>();
string line = string.Empty;
for (int i = 0; csv.TryGetField<string>(i, out string value); i++)
{
values.Add(value);
}
}
}
}发布于 2019-02-20 01:45:10
您可以通过将Delimiter更改为,之外的任何字符来获得所需的输出,如\n,将IgnoreQuotes设置为true
csv.Configuration.IgnoreQuotes = true;
csv.Configuration.Delimiter = "\\n";https://stackoverflow.com/questions/54765170
复制相似问题