その値に基づいて辞書をソートし、結果の辞書を取得したい
Dictionary<String, Int32> outputDictionary = new Dictionary<String, Int32>();
outputDictionary.Add("MyFirstValue", 1);
outputDictionary.Add("MySecondValue",2);
outputDictionary.Add("MyThirdValue", 10);
outputDictionary.Add("MyFourthValue", 20);
outputDictionary.Add("MyFifthValue", 5);
値でソートするために3つの方法を使用しました
方法 1:
outputDictionary = outputDictionary.OrderBy(key => key.Value).ToDictionary(pair => pair.Key, pair => pair.Value);
方法 2:
foreach (KeyValuePair<String, String> item in outputDictionary.OrderBy(key => key.Value))
{
// do something with item.Key and item.Value
}
方法 3:
outputDictionary = (from entry in outputDictionary orderby entry.Value ascending select entry).ToDictionary(pair => pair.Key, pair => pair.Value);
しかし、どの方法を選択しても、次の結果が得られます
MyFirstValue, 1
MyThirdValue, 10
MySecondValue, 2
MyFourthValue, 20
MyFifthValue, 5
好きなところに
MyFirstValue, 1
MySecondValue, 2
MyFifthValue, 5
MyThirdValue, 10
MyFourthValue, 20