C# 通过LINQ获取字符串列表

C# 通过LINQ获取字符串列表,c#,linq,C#,Linq,我试图在下面的代码中获取字符串列表,并且我得到一个onselect命令,该命令如下: 无法隐式转换类型 'System.Data.EnumerablerRowCollection>' 到 “System.Collections.Generic.List>” List rows=(来自data.AsEnumerable()中的myRow) 选择新列表{myRow[“FirstName”].ToString(), myRow[“LastName”].ToString(), myRow[“部门”].T

我试图在下面的代码中获取字符串列表,并且我得到一个on
select
命令,该命令如下:

无法隐式转换类型 'System.Data.EnumerablerRowCollection>' 到 “System.Collections.Generic.List>”

List rows=(来自data.AsEnumerable()中的myRow)
选择新列表{myRow[“FirstName”].ToString(),
myRow[“LastName”].ToString(),
myRow[“部门”].ToString(),
myRow[“生日”].ToString(),
myRow[“Description”].ToString()
});

如何获取字符串列表?

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 rows=(来自data.AsEnumerable()中的myRow)
选择新列表{myRow[“FirstName”].ToString(),
myRow[“LastName”].ToString(),
myRow[“部门”].ToString(),
myRow[“生日”].ToString(),
myRow[“Description”].ToString()
}).ToList();

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 rows=(来自data.AsEnumerable()中的myRow)
选择新列表{myRow[“FirstName”].ToString(),
myRow[“LastName”].ToString(),
myRow[“部门”].ToString(),
myRow[“生日”].ToString(),
myRow[“Description”].ToString()
}).ToList();

方法语法更简洁:

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

方法语法更简洁:

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

谢谢,这很有效。我真的试过了,但我愚蠢的VS IDE没有意识到。一旦我点击了Build,IDE就会识别它。不客气。甚至比“谢谢”更好:勾选复选标记!:-)谢谢,这很有效。我真的试过了,但我愚蠢的VS IDE没有意识到。一旦我点击了Build,IDE就会识别它。不客气。甚至比“谢谢”更好:勾选复选标记!:-)是的。但结果是什么?视情况而定。但是我喜欢使用ItemArray。是的。但结果是什么?视情况而定。但是我喜欢使用ItemArray。