辞書を値で並べ替えるにはどうすればいいですか? 質問する

辞書を値で並べ替えるにはどうすればいいですか? 質問する

辞書 (キーと値で構成) を値で並べ替える必要があることがよくあります。たとえば、単語のハッシュとそれぞれの頻度があり、これを頻度順に並べ替えたいとします。

単一の値 (たとえば頻度) に適したがありSortedList、それを単語にマッピングし直したいと考えています。

ソート辞書値ではなくキーで順序付けます。カスタムクラスしかし、もっときれいな方法はあるのでしょうか?

ベストアンサー1

LINQ を使用する:

Dictionary<string, int> myDict = new Dictionary<string, int>();
myDict.Add("one", 1);
myDict.Add("four", 4);
myDict.Add("two", 2);
myDict.Add("three", 3);

var sortedDict = from entry in myDict orderby entry.Value ascending select entry;

これにより、上位 10、20、10% などを選択できるという大きな柔軟性も得られます。または、 の単語頻度インデックスを使用している場合は、句type-aheadも含めることができます。StartsWith

おすすめ記事