Any 和 First(OrDefault) - 最佳實踐
我不會解釋 Any
和 FirstOrDefault
的作用,因為已經有兩個很好的例子。有關詳細資訊, 請參閱 Any 和 First,FirstOrDefault,Last,LastOrDefault,Single 和 SingleOrDefault 。
我經常在程式碼中看到的應該避免的模式是
if (myEnumerable.Any(t=>t.Foo == "Bob"))
{
var myFoo = myEnumerable.First(t=>t.Foo == "Bob");
//Do stuff
}
它可以像這樣寫得更有效率
var myFoo = myEnumerable.FirstOrDefault(t=>t.Foo == "Bob");
if (myFoo != null)
{
//Do stuff
}
通過使用第二個示例,僅搜尋集合一次並給出與第一個相同的結果。同樣的想法可以應用於 Single
。