Nullable DateOfBirthプロパティを持つPersonオブジェクトがあります。LINQを使用して、Personオブジェクトのリストをクエリし、DateOfBirthの値が最も早い/最も小さいものを探します。
これが私が始めたものです:
var firstBornDate = People.Min(p => p.DateOfBirth.GetValueOrDefault(DateTime.MaxValue));
Null DateOfBirth値は、Minの考慮事項から除外するためにDateTime.MaxValueに設定されます(少なくとも1つに指定されたDOBがあると想定)。
しかし、私にとっては、firstBornDateをDateTime値に設定するだけです。取得したいのは、それに一致するPersonオブジェクトです。次のような2番目のクエリを作成する必要がありますか?
var firstBorn = People.Single(p=> (p.DateOfBirth ?? DateTime.MaxValue) == firstBornDate);
それとも、より無駄のない方法がありますか?
a.Min(x => x.foo);
max("find a word of maximal length in this sentence".split(), key=len)
、文字列 'sentence'を返します。C#では"find a word of maximal length in this sentence".Split().Max(word => word.Length)
、8はどの単語の最長でもあると計算されますが、最長の単語が何であるかはわかりません。