この質問は、SOでいずれかの方法で質問されましたが、このようにはなりません。統計的な解決策を探していた非常に基本的な問題に遭遇しました:-)2つの整数プロパティを持つオブジェクトのリストを取得しました。ここで、リスト内のすべてのオブジェクトの両方のプロパティの最大値を見つけたいと思います。
私は3つの解決策を思いついた:
最初のアプローチ:
int max = Math.Max(list.Max(elem => elem.Nr), list.Max(elem => elem.OtherNr));
2番目のアプローチ:
public int Max(List<Thing> list)
{
int maxNr = 0;
foreach (var elem in list)
{
if (elem.Nr > maxNr)
maxNr = elem.Nr;
if (elem.OtherNr > maxNr)
maxNr = elem.OtherNr;
}
return maxNr;
}
3番目のアプローチは、両方の属性で並べ替えを実行してから、最初のエントリを取得して、どちらか一方のプロパティを取得することです。
これを行うための最速の方法を見つけたいと思います。したがって、すべてのアプローチの中で、私は2番目の投稿が好きです(パフォーマンスの観点から)。最初のものは短いですが、リストを2回確認する必要があります。
他の解決策はありますか?