我正在使用 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# 只计算双引号之外的逗号?这真的是我的问题。