2013-02-28 4 views
15

datatableには1つの列しかなく、すべての項目が文字列です。これをたとえばLINQを使用してList<string>に変換するにはどうすればよいですか?リストに1列のデータテーブルがあります<string>

私が試した:

DataRow[] rows = dtusers.Select(); 
var qq = from RowCollection in rows 
     select new { UserCode = LibStatic.ToStr(RowCollection["UserCode"]) }; 

List<string> users = new List<string>(); 
users = qq.Cast<string>().ToList(); 

を常に働くeasywayがあります:

foreach (DataRow dr in dtusers.Rows) 
{ 
    users.Add(dr[0].ToString()); 
} 

答えて

43

あなたはそれを行うためにLINQ queryを使用することができます。

List<string> list = dtusers.AsEnumerable() 
          .Select(r=> r.Field<string>("UserCode")) 
          .ToList(); 
+1

本当に便利です。ありがとう.. :) – Divya

+1

ありがとう、列名の使用を避けたい人は.Select(r => r.Field (0)) – user960567

+1

EnumerableRowCollectionにはList ..の定義が含まれていません。あなたのクラスにLinQパッケージ –

関連する問題