Any 和 First(OrDefault) - 最佳實踐

我不會解釋 AnyFirstOrDefault 的作用,因為已經有兩個很好的例子。有關詳細資訊 請參閱 AnyFirst,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