.net - 为什么 DataTable.Rows 没有 .Where() 方法?

标签 .net linq datatable datarowcollection

我喜欢 .Where() 方法提供的语法,它可用于许多集合。但是,我注意到一些收藏中明显没有它。

我确定这与某些接口(interface)正在实现或未实现有关,但除此之外,我想知道为什么我们没有 .Where() 方法数据表.行数

最佳答案

DataRowCollection只实现 IEnumerable , 不是 IEnumerable<DataRow> .

存在扩展方法 - DataTableExtensions.AsEnumerable - 有效地“修复”这个。您也可以直接调用 table.Cast<DataRow>()但是 EnumerableRowCollection AsEnumerable 返回有更多的功能。

所以你可以这样写:

var query = from row in table.AsEnumerable()
            where ...
            select ...;

DataRowExtensions 中还有其他有用的扩展方法,最值得注意的是 Field ,所以你可以这样写:

var query = from row in table.AsEnumerable()
            where row.Field<int>("Age") > 18
            select row.Field<string>("Name");

关于.net - 为什么 DataTable.Rows 没有 .Where() 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4187339/

相关文章:

.net - SQL Server 中的哈希码?

c# - 在 azure 上托管 WCF 服务时有哪些限制(如果有)

c# - 使用 Entity Framework 从关联中获取 ID

javascript - Jquery dataTable 列更新和导出

.net - 字符串混淆的 const 和 static readonly 之间的区别?

c# - 静态上下文在 C# 中总是单一的吗?

c# - 如何使用 LINQ 将 TypeA 的嵌套数据结构转换为 TypeB

c# - LINQ 到 XML : How to get all elements by value

datatable - "Class datatables does not exist"使用 "yajra"laravel 数据表时出错

reactjs - 如何在React mui-Datatable中完成customRender