一个圆柱形数据表到List <string>

Sin*_*5k4 24 c# linq

我有一个datatable只包含一列,所有项目都是字符串.我怎样才能将它转换为List<string>使用LINQ?

我试过了:

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();
Run Code Online (Sandbox Code Playgroud)

有一个总是有效的easyway:

foreach (DataRow dr in dtusers.Rows)
{
    users.Add(dr[0].ToString());
}
Run Code Online (Sandbox Code Playgroud)

Hab*_*bib 67

您可以使用LINQ查询来执行此操作.

List<string> list = dtusers.AsEnumerable()
                           .Select(r=> r.Field<string>("UserCode"))
                           .ToList();
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,对于任何想避免使用列名的人.选择(r => r.Field <string>(0)) (7认同)
  • 我收到错误EnumerableRowCollection不包含List &lt;string&gt;的定义。在这种情况下,将System.LinQ包导入到您的类中 (3认同)

Nit*_*pra 5

你可以试试这段代码,

List<string> list = dt.Rows.OfType<DataRow>().Select(dr => (string)dr["ColumnName"]).ToList();
Run Code Online (Sandbox Code Playgroud)