私のデータは次のとおりです。
名前、生年月日、場所、資格
"Ranjan,Priya",01/01/1988,"Pune,Maharashtra",B.Tech
"Mayank,Agrawal",05/05/1990,"Ranchi,Rajsthan",BCA
分割プロパティとコンマを区切り文字として使用すると、名前と場所の値が分割されますが、単一の値になります。次に、linq を使用して名前と場所を単一の値として取得する方法を教えてください。
これについては、Linqとはあまり合いません。正規表現ははるかに自然に適合し、おまけに、この問題は他の人によって解決されています。それが私がこれを見つけた場所です:
protected virtual string[] SplitCSV(string line)
{ System.Text.RegularExpressions.RegexOptions options = ((System.Text.RegularExpressions.RegexOptions.IgnorePatternWhitespace | System.Text.RegularExpressions.RegexOptions.Multiline)
| System.Text.RegularExpressions.RegexOptions.IgnoreCase);
Regex reg = new Regex("(?:^|,)(\\\"(?:[^\\\"]+|\\\"\\\")*\\\"|[^,]*)", options);
MatchCollection coll = reg.Matches(line);
string[] items = new string[coll.Count];
int i = 0;
foreach(Match m in coll)
{
items[i++] = m.Groups[0].Value.Trim('"').Trim(',').Trim('"').Trim();
}
return items;
}