Thanks for the article Kamil, good refresher.
I hate null handling, so recently I have been using these methods a bit differently, where I specify what is the default value.
var defaultStudent = new Student
{
Id = 0,
Name = "Karen",
Course = "FlatEarth"
};
var student = students.Where(s => s.Name == "Charlie").DefaultIdEmpty(defaultStudent).FirstOrDefault();
Hopefully MS would allow us to manage default values directly in the future.