2012-07-26 32 views
4

之间是否有任何明显的性能差异:LINQ凡(谓语)与FirstOrDefault(谓语)

something.Where(predicate).FirstOrDefault(); 

something.FirstOrDefault(predicate); 

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

+0

与大多数优化形式一样,最好的选择是自己尝试一下,看看会发生什么。做你自己的基准,看看什么是最适合你的应用。 – 2012-07-26 02:07:51

回答

10

取决于Where是否与IQueryableIEnumerable相对。 在IQueryable的情况下,区别是基于提供者的实现,但它更有可能不会有差异并且会产生相同的查询。

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

+0

+1简而言之 – Chandu 2012-07-26 02:12:48