gpt4 book ai didi

c# - 检查和检索集合中第一项的最佳方法是什么?

转载 作者:太空狗 更新时间:2023-10-29 18:21:02 24 4
gpt4 key购买 nike

我知道这有点微不足道但是......

获取集合中第一项的引用(如果存在)的最佳方法是什么?假设集合包含引用类型的项目。

代码示例 1:

if (collection.Any())
{
var firstItem = collection.First();
// add logic here
}

上面的示例对集合有两个单独的调用,开始一个迭代,一旦检测到第一个迭代就完成。

代码示例 2:

var firstItem = collection.FirstOrDefault();
if (firstItem != null)
{
// add logic here
}

上面的示例只对集合进行了一次调用,但引入了一个在更大范围内不必要的变量。

是否有与此场景相关的最佳实践?有更好的解决方案吗?

最佳答案

我更喜欢第二个例子,因为它在一般情况下更有效。这个集合可能是许多不同延迟评估的 LINQ 查询的组合,因此即使获得第一个元素也需要大量的工作。

例如,假设此集合是根据以下 LINQ 查询构建的

var collection = originalList.OrderBy(someComparingFunc);

仅从 collection 中获取第一个元素需要对 originalList 的内容进行完整排序。每次评估 collection 的元素时都会发生这种完整排序。

第一个示例导致潜在昂贵的集合被评估两次:通过 AnyFirst 方法。第二个示例只评估一次集合,因此我会选择它而不是第一个。

关于c# - 检查和检索集合中第一项的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5161962/

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