System.Linq を用いた最大値探索

これに気付いたときものすごく感動したのでメモ.

最小値/最大値探索のコードはいつも for 文を書いてしまうんだけど,
せっかく C# 使ってるんだからもっとスマートな書き方がないもんかと
毎日悶々と過ごしていました.

で,適当に書いてみた結果がこれだよ!

だいぶ周辺コードを省略していますが,
int 型の ID という公開プロパティを持ったクラスのコレクションデータである
RecordData で,ID の最大値を返す MaxID プロパティの get アクセサです.

いつもの自分ならこうしていた.

なにが気に食わないって,初期値付きの自動変数を自分で与えないといけないとこ.
コーディング中に 「えっと,初期値は…」 って一瞬手が止まっちゃう.
最悪な場合は初期値を間違えて正常に動作しなかったり.
これと同じ内容を Linq ならたった 1 行で書けるなんて!
やっぱり Linq はしっかり勉強しておくべきだなぁ.