gpt4 book ai didi

c# - 空 HashSet - 计数与任意

转载 作者:太空狗 更新时间:2023-10-29 22:14:00 25 4
gpt4 key购买 nike

我只想知道一个 HashSet hs 是否为空。我没有兴趣确切知道它包含多少元素。

所以我可以用这个:

bool isEmpty = (hs.Count == 0);

...或者这个:

bool isEmpty = hs.Any(x=>true);

哪个提供更好的结果,性能方面(特别是当 HashSet 包含大量元素时)?

最佳答案

在 HashSet 上,您可以同时使用两者,因为 HashSet 在内部管理计数。

但是,如果您的数据位于 IEnumerable<T> 中或 IQueryable<T>对象,使用 result.Any()优于 result.Count() (两种 Linq 方法)。

Linq 的 .Count()将遍历整个 Enumerable,.Any()只会查看 Enumerable 中是否存在任何对象。

更新:只是小补充:在您使用 HashSet 的情况下 .Count可能更适合 .Any()需要 IEmumerator如果您不打算在代码中的任何地方使用 Enumerator(foreach、Linq 等),则创建和返回这是一个很小的开销。但我认为这将被视为“微优化”。

关于c# - 空 HashSet - 计数与任意,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18235606/

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