我有以下代码
List<string> esfa = NewTable.AsEnumerable().Where(row => row.Field<string>("Select")
=="true").ToList();
编译时收到错误
无法隐式将
'System.Collections.Generic.List<System.Data.Datarow>'
类型转换为'System.Collections.Generic.List<string>'
请帮忙。
答案 0 :(得分:8)
嗯,是的。您正在通过Select
字段过滤 - 但该过滤的结果仍然是一系列行。我希望这是你想要的 - 毕竟,你知道每一行中Select
字段的价值,所以这不是很有趣......
我想你可能只想要:
List<DataRow> rows = NewTable.AsEnumerable()
.Where(row => row.Field<string>("Select") == "true")
.ToList();
(请注意,将代码分成多行就像这样可以极大地提高可读性。)
如果您确实想要其他某个字段的值,您可能需要以下内容:
List<string> rows = NewTable.AsEnumerable()
.Where(row => row.Field<string>("Select") == "true")
.Select(row => row.Field<string>("LastName"))
.ToList();
答案 1 :(得分:2)
试试这个:
List<string> esfa = db.AsEnumerable()
.Where(row => row.Field<string>("Select") == "true")
.Select(s => s.Field<string>("Select"))
.ToList();
linq .Select
使您可以选择当前集合的任何属性。使用“选择”列以外的任何其他有用字段。