0
我的數據如下,閱讀CSV文件的LINQ
姓名,出生日期,地點,資質
「蘭詹,普里亞」,01/01/1988年, 「浦那,馬哈拉施特拉邦」,B.Tech
「 Mayank,Agrawal「,05/05/1990,」Ranchi,Rajsthan「,BCA
當我使用split屬性和逗號作爲分隔符時,我的名字和位置值被分割,但它的單個值。然後如何獲取Name和位置作爲使用LINQ單個值。
我的數據如下,閱讀CSV文件的LINQ
姓名,出生日期,地點,資質
「蘭詹,普里亞」,01/01/1988年, 「浦那,馬哈拉施特拉邦」,B.Tech
「 Mayank,Agrawal「,05/05/1990,」Ranchi,Rajsthan「,BCA
當我使用split屬性和逗號作爲分隔符時,我的名字和位置值被分割,但它的單個值。然後如何獲取Name和位置作爲使用LINQ單個值。
這不會真的與Linq一起。 RegEx是一個更自然的適合和獎金,這個問題已被solved by others。這是我發現這個的地方:
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;
}
在解析填充CSV文件時嘗試使用LINQ是無望的。你可以得到一個免費的閱讀器(這裏是[鏈接](http://www.codeproject.com/Articles/9258/A-Fast-CSV-Reader))。 – dasblinkenlight
可能有辦法通過應用正則表達式來處理這種情況。但是,在我們深入研究之前,請確定:您是否可以使用其他分隔符(例如分號或管道)創建CSV文件? –
我們已經在生產中使用LinqToCsv幾年了。很棒。 http://www.codeproject.com/Articles/25133/LINQ-to-CSV-library – hatchet