私は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#が二重引用符の外側のコンマのみをカウントするようにするにはどうすればよいですか?それは本当に私の質問です。