相关疑难解决方法(0)

FirstOrDefault扩展方法如何工作?

我想知道FirstOrDefault扩展方法是如何工作的?它遵循以下哪种算法?

使用:

var arr = new[] {1, 2, 3, 4, 5, 6, 7};
return arr.FirstOrDefault(x => x%2 == 0);
Run Code Online (Sandbox Code Playgroud)

算法1:

for(int i = 0; i < arr.Length; i++)
{
   if(arr[i] % 2 == 0)
     return arr[i];
}
return 0;
Run Code Online (Sandbox Code Playgroud)

算法2:

var list = new List<int>();
for(int i = 0; i < arr.Length; i++)
{
   if(arr[i] % 2 == 0)
     list.Add(arr[i]);
}
return list.Count == 0 ? 0 : list[0];
Run Code Online (Sandbox Code Playgroud)

FirstOrDefault算法是否足够智能以选择最佳算法或严格遵循这些算法中的任何一个算法?

.net c# ienumerable extension-methods

3
推荐指数
1
解决办法
5713
查看次数

标签 统计

.net ×1

c# ×1

extension-methods ×1

ienumerable ×1