2011-07-28 34 views
0

我有一個CSV文件示例如下讀CSV使用LINQ

  1. 1保存輸出文件列表,
  2. 2,B
  3. 3,C

代碼:

var query = File.ReadAllLines("test.txt") 
      .Select(record => record.Split(',')) 
      .Select(tokens => new { clearNum = tokens[0], MPID = tokens[1] }); 

foreach (var item in query) 
{ 
    Console.WriteLine("{0}, {1}", item.clearNum, item.MPID); 
} 

我可以打印項目。

我需要LINQ查詢的輸出發送到LIST

公共類icSASList { 公共字符串ClearNum {獲得;組; } public string MPID {get;組; } }

List clearList = new List;

回答

0

考慮接受的答案後,我想建議一個解決方案,需要較少的對象初始化。如果名單很大,這將有所作爲。

var query = File.ReadAllLines("test.txt") 
.Select(record => record.Split(',')) 
.Select(tokens => new icSASList(){ ClearNum = tokens[0], MPID = tokens[1] }); 

var clearList = query.ToList(); 

哦,是的,使用record.Split(',')是幼稚 - 這通常允許有逗號「(引用)領域,這將打破你的程序更好地利用類似http://www.filehelpers.com/

+0

我選擇以前的海報作爲答案,因爲它對我有效,我會給你一個建議。謝謝 – turash

+0

感謝弗拉迪斯拉夫佐羅夫,你的解決方案的工作,並給出了預期的結果 – turash

0

我還沒有試過編譯它,但我想你想要這樣的東西?

var clearList = query.Select(x=>new icSASList(){ClearNum = x.clearNum, MPID = x.MPID}).ToList(); 
+0

非常感謝Chirs你。代碼作品 – turash