Como usar o LINQ para selecionar objetos com valor mínimo ou máximo da propriedade

Eu tenho um objeto Person com uma propriedade Nullable DateOfBirth. Existe uma maneira de usar o LINQ para consultar uma lista de objetos Person para aquele com o menor / menor valor DateOfBirt

Aqui está o que eu comecei:

var firstBornDate = People.Min(p => p.DateOfBirth.GetValueOrDefault(DateTime.MaxValue));

Os valores DateOfBirth nulos são definidos como DateTime.MaxValue para excluí-los da consideração Min (assumindo que pelo menos um tenha um DOB especificado

Mas tudo o que faz por mim é definir firstBornDate como um valor DateTime. O que eu gostaria de obter é o objeto Person que corresponde a isso. Preciso escrever uma segunda consulta assim:

var firstBorn = People.Single(p=> (p.DateOfBirth ?? DateTime.MaxValue) == firstBornDate);

Existe uma maneira mais enxuta de fazer iss

questionAnswers(22)

yourAnswerToTheQuestion