gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 02:05:23 27 4
gpt4 key购买 nike

我喜欢 .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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com