LINQ Where(谓词)与FirstOrDefault(谓词)

Maj*_*ons 4 linq c#-4.0

以下两者之间是否存在明显的性能差异:

something.Where(predicate).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

something.FirstOrDefault(predicate);
Run Code Online (Sandbox Code Playgroud)

我倾向于使用两者,但我想知道在性能方面是否有明显的赢家.

Muh*_*han 10

这取决于这Where是否反对IQueryableIEnumerable.如果IQueryable差异是基于提供者的实现,但更可能没有差异,并将产生相同的查询.

在IEnumerable的情况下,它应该可以忽略不计.