我正在使用 c# 读取一个 csv 文件,这是一个小代码片段。
using (StreamReader readFile = new StreamReader("C:\\temp\\" + whichTable))
{
while ((line = readFile.ReadLine()) != null)
{
row = line.Split(',');
switch (row.Length)
{
case 5:
if (counter == 0)
{
break;
}
else
{
v00.Add(Convert.ToInt32(Regex.Replace(row[0], @"[^\w\.@-]", "")));
}
if (row[1] == "")
{
v01.Add((1));
}
else
{
v01.Add(Convert.ToInt32(Regex.Replace(row[1], @"[^\w\.@-]", "")));
}
if(row[2]=="")
{
v02.Add(2);
}
else
{
v02.Add(Convert.ToInt32(Regex.Replace(row[2], @"[^\w\.@-]", "")));
}
v3.Add(row[4]);
v4.Add(row[3]);
counter++;
break;
}
counter++;
}
break;
}
正如您从我的代码中可以看出的那样,我测试了字符串行的长度,以确保它的长度正好是 5。我的问题是,如果 csv 中有一个带逗号的字段,那么它的计算结果将超过 5。我的 csv 格式正确,所以当这种情况发生时,我确实有一个该字段双引号。我怎么能告诉 c# 只计算双引号之外的逗号?这真的是我的问题。