我正在排序一個字典,其中包含值爲&的按鍵。我有一個單詞和時間數量的散列,我想按照使用的時間數量排序。C#按值排序字典
有一個SortedList對單個值很有用,我想將它映射回單詞。
SortedDictionary按鍵排序,不是值。
我可以使用自定義類,有沒有更好的方法。
我做了一些谷歌搜索,但我無法找到我正在尋找什麼。
我正在排序一個字典,其中包含值爲&的按鍵。我有一個單詞和時間數量的散列,我想按照使用的時間數量排序。C#按值排序字典
有一個SortedList對單個值很有用,我想將它映射回單詞。
SortedDictionary按鍵排序,不是值。
我可以使用自定義類,有沒有更好的方法。
我做了一些谷歌搜索,但我無法找到我正在尋找什麼。
我找到了答案
List<KeyValuePair<string, string>> BillsList = aDictionary.ToList();
BillsList.Sort(delegate(KeyValuePair<string, string> firstPair,
KeyValuePair<string, string> nextPair)
{
return firstPair.Value.CompareTo(nextPair.Value);
}
);
你可以使用lambda使其更簡單。 'BillsList.Sort((firstPair,nextPair)=> firstPair.Value.CompareTo(nextPair.Value));' –
這應做到:
Dictionary<string, string> d = new Dictionary<string, string>
{
{"A","Z"},
{"B","Y"},
{"C","X"}
};
d.OrderBy(x=>x.Value).Select(x=>x.Key);
將返回C,B,A
下面是使用LINQ和計數映射到Word :
IDictionary<string, int> wordsAndCount = new Dictionary<string, int>
{
{"Batman", 987987987},
{"MeaningOfLife",42},
{"Fun",69},
{"Relaxing",420},
{"This", 2}
};
var result = wordsAndCount.OrderBy(d => d.Value).Select(d => new
{
Word = d.Key,
Count = d.Value
});
示例鍵值對 –
'Dictionary'未按設計排序。排序它沒有意義。你打算如何使用它?展示實際示例,我們將嘗試找到最優化的集合\解決方案。 –
您需要將您的字典(根據定義,未排序)複製到其他集合(例如列表)中,然後對第二個集合進行排序。看看.Net方法[.toList()](http://www.dotnetperls.com/tolist) – paulsm4