C#で ""(ダブルクォーテーション)で囲まれた含まれたCSVをパースする


プログラムでちょっとした、ほんの数行の.csvをパースする必要があったので、
横着して

string[] infoOneArr = line.Split(",");

とやったのですが・・・
山田太郎,"ABC Inc,Japan",2,研究,
ありましたよ"ABC Inc,Japan"が。ほんの数行の中に。
""で囲ってあって中にカンマが入っているやつ。
ガッツリと.csvを扱うのならパーサー用意するとか考えるのですが、
ちょっとした.csvなだけになんとなく躊躇してしまいます。曰く

「何とかインチキできんのか?」

答え:こんな感じでどうでしょう?

using System.Text.RegularExpressions;
    :
Regex reg = new Regex(",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)");
string[] infoOneArr = reg.Split(line); // ""で囲まれたものは分割しない
for (int n = 0; n < infoOneArr.Length; ++n)
    infoOneArr[n] = infoOneArr[n].Trim('"'); // 先頭と最後尾の '"' を削除