【C#】Dictionary内で最小(最大)のValueをもつアイテムのKeyが知りたい
まとめ
ソートして、最初のやつ
よりも
最大値求めて、foreach
のほうが早そう
コード
最小のValueをもつアイテムのKeyを取得するサンプル
Dictionary<int,int> dict=new Dictionary<int,int>(); //ここでいろいろアイテムを追加する int maxKey=dict.OrderBy(val=>val.Value).First().Key;
最大のValueのものが欲しい場合は適当に.OrderBy()
を.OrderByDescending()
にするなどしてください
書いてて思ったんですけど.Max()
で求めた最大値を.Where()
かforeach
かでその値を持つインデックス探すほうが早い気がする
実装にもよるけど
.Max()
のオーダーは多分なので
.OrderBy()
のオーダーがだとしても.Max()
のほうが早いかと
ただまあ.OrderBy()
のほうは1行で簡単に書けるという利点(?)があるので要素数が少なくて速度を気にしなくていい場合などは使い道があるかも