从通用列表转换错误到通用列表

本文关键字:列表 string 错误 Datarow 转换 | 更新日期: 2023-09-27 18:02:36

下面有代码

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>'

请帮。

从通用列表<Datarow>转换错误到通用列表<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();

try this:

List<string> esfa = db.AsEnumerable()
                      .Where(row => row.Field<string>("Select") == "true")
                      .Select(s => s.Field<string>("Select"))
                      .ToList();

linq .Select使您能够选择当前集合的任何属性。使用除"选择"列以外的任何其他有用字段