gpt4 book ai didi

c# - LINQ MoreThan(predicate, limit) 扩展而不是 Count(predicate) > limit?

转载 作者:行者123 更新时间:2023-11-30 19:31:38 26 4
gpt4 key购买 nike

检查 IEnumerable 集合是否多于或少于 X 个满足谓词的元素的最佳方法是什么?

我目前正在使用 .Count(lambda) <= limit但这会使程序不必要地遍历整个集合。

最佳答案

您可以使用此表达式:.Skip(limit).Any() 等效于 Count() > limit。但是,如果您的列表是 ICollection,则 Count() 更为可取。

谓词版本:

public static bool MoreThan<TSource>(this IEnumerable<TSource> source, 
Func<TSource, bool> predicate, int limit)
{
int i = 0;

foreach (var item in source)
{
if (predicate(item))
{
i++;

if (i > limit)
{
return true;
}
}

}

return false;
}

关于c# - LINQ MoreThan(predicate, limit) 扩展而不是 Count(predicate) > limit?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6828446/

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