2013-02-28 3 views
15

У меня есть datatable, который содержит только один столбец, и все элементы являются строками. Как я могу преобразовать это в List<string>, используя LINQ?Один столбец, который относится к списку <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

спасибо, для кого угодно, чтобы избежать использования имени столбца. Выберите (r => r.Field (0)) – user960567

+1

У меня ошибка. EnumerableRowCollection не содержит определения для списка .. в этом случае import System. Комплект LinQ для вашего класса –

Смежные вопросы