通过LINQ获取字符串列表

本文关键字:列表 字符串 获取 LINQ 通过 | 更新日期: 2023-09-27 18:28:51

我试图在下面的代码中获得一个字符串列表,并且在select上得到一个如下所示的列表:

无法隐式转换类型'System.Data.EnumerableRowCollection>'到'系统.集合.通用.列表>'

List<List<string>> rows = (from myRow in data.AsEnumerable()
                            select new List<string> {myRow["FirstName"].ToString(),
                                myRow["LastName"].ToString(),
                                myRow["Department"].ToString(),
                                myRow["Birthdate"].ToString(),
                                myRow["Description"].ToString()
                            });

如何获取字符串列表?

通过LINQ获取字符串列表

Linq正在处理可枚举对象(IEnumerable)。您需要转换为列表:

List<List<string>> rows = (from myRow in data.AsEnumerable()
                            select new List<string> {myRow["FirstName"].ToString(),
                                myRow["LastName"].ToString(),
                                myRow["Department"].ToString(),
                                myRow["Birthdate"].ToString(),
                                myRow["Description"].ToString()
                            }).ToList();

方法语法更简洁:

List<List<string>> rows = data.AsEnumerable()
    .Select(r => r.ItemArray.Select(o => o + "").ToList())
    .ToList();

"half"查询语法:

rows = (from row in data.AsEnumerable()
        select row.ItemArray.Select(o => o + "").ToList())
       .ToList();