gpt4 book ai didi

c# - 确定集合至少有 2 个项目的有效方法

转载 作者:太空狗 更新时间:2023-10-29 23:59:44 25 4
gpt4 key购买 nike

我知道 Linq 提供了确定集合是否有任何项目的能力。比如

var anyCategories= categories.Any();

这是非常有效的,因为如果它找到至少一项,那么迭代就会停止。现在如果我想知道一个集合是否至少有 2 个项目怎么办。这是我目前的代码:

var atLeastTwoCategories= categories.Count() > 1;

如果计数大于 1,这个将遍历整个集合。我认为这是非常低效的。 Linq 或 .NET 是否提供更好的方法来执行此操作?

最佳答案

最简单的方法是:

var atLeastTwoCategories= categories.Skip(1).Any();

我假设“集合”实际上是指 LINQ 支持的任何 IEnumerable,包括 SQL 数据源。对于 ListArray .NET 无论如何都可以将 Count 优化为 O(1) 操作,因此这没有区别。参见 https://stackoverflow.com/a/981283/224370但对于来自数据库的“集合”或迭代元素成本高昂的情况,这种方法更快。

关于c# - 确定集合至少有 2 个项目的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36254102/

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