34

我有一个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();

有一条总是有效的捷径:

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

2 回答 2

86

您可以使用LINQ 查询来做到这一点。

List<string> list = dtusers.AsEnumerable()
                           .Select(r=> r.Field<string>("UserCode"))
                           .ToList();
于 2013-02-28T07:23:41.300 回答
5

你可以试试这段代码

List<string> list = dt.Rows.OfType<DataRow>().Select(dr => (string)dr["ColumnName"]).ToList();
于 2019-04-24T08:25:27.830 回答