我有下面的代码
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>'
请帮忙。
我有下面的代码
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>'
请帮忙。
嗯,是。您正在按字段进行过滤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();
试试这个:
List<string> esfa = db.AsEnumerable()
.Where(row => row.Field<string>("Select") == "true")
.Select(s => s.Field<string>("Select"))
.ToList();
linq.Select
使您可以选择当前集合的任何属性。使用“选择”列以外的任何其他有用字段。