Here is my benchmark.
public class LinqBenchmarks {enter image description here private int[] _numbers;
[GlobalSetup]
public void Setup()
{
_numbers = Enumerable.Range(1, 1000).ToArray();
}
[Benchmark]
public int FirstOrDefaultCondition()
{
return _numbers.FirstOrDefault(n => n == 800);
}
[Benchmark]
public int WhereFirstOrDefault()
{
return _numbers.Where(n => n == 800).FirstOrDefault();
}
}
Benchmark So it looks like the Where(n => n ==800).FirstOrDefault() is faster than the FirstOrDefault(n => n == 800). Please see the image in benchmark.