1

我正在尝试在下面的代码中获取字符串列表的列表,并且我得到了一个select内容:

无法将类型“System.Data.EnumerableRowCollection>”隐式转换为“System.Collections.Generic.List>”

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()
                            });

如何获取字符串列表的列表?

4

2 回答 2

5

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();
于 2013-08-22T19:58:57.137 回答
2

方法语法更简洁:

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

“半”查询语法:

rows = (from row in data.AsEnumerable()
        select row.ItemArray.Select(o => o + "").ToList())
       .ToList();
于 2013-08-22T20:01:10.663 回答