Any and FirstOrDefault - best practice

suggest change

I won’t explain what Any and FirstOrDefault does because there are already two good example about them. See and for more information.

A pattern I often see in code which should be avoided is

if (myEnumerable.Any(t=>t.Foo == "Bob"))
    var myFoo = myEnumerable.First(t=>t.Foo == "Bob");
    //Do stuff

It could be written more efficiently like this

var myFoo = myEnumerable.FirstOrDefault(t=>t.Foo == "Bob");
if (myFoo != null)
    //Do stuff

By using the second example, the collection is searched only once and give the same result as the first one. The same idea can be applied to Single.

Feedback about page:

Optional: your email if you want me to get back to you:

Table Of Contents