排序字典我有這個字典如何通過DateTime值
Dictionary<Guid, DateTime> myDic = new Dictionary<Guid, DateTime>();
什麼是日期時間對它進行排序DESC最好的方法?它是LINQ嗎?
它如何在代碼中完成?
謝謝!
排序字典我有這個字典如何通過DateTime值
Dictionary<Guid, DateTime> myDic = new Dictionary<Guid, DateTime>();
什麼是日期時間對它進行排序DESC最好的方法?它是LINQ嗎?
它如何在代碼中完成?
謝謝!
你有錯誤的數據結構來實現你想要的。字典的目的是通過密鑰提供快速訪問。 SortedDictionary存在對自己的鍵進行排序,但沒有字典對其值進行排序,因爲這沒有意義。
假設所有你需要的是包含在myDic的DateTime是否降序排序,你可以這樣做:
var dateTimesDescending = myDic.Values.OrderByDescending(d => d);
,讓你列舉降序排列的值,但不會排序字典。
不依賴於目前執行的細節不能排序Dictionary
,但你可以使用LINQ的排序功能在任何特定的順序處理它的條目:
foreach (KeyValuePair<Guid,DateTime> pair in myDict.OrderByDescending(p => p.Value)) {
// do some processing
}
純粹作爲一種好奇心,你可以通訂購鍵值對Dictionary
的構造函數,並且生成的字典將按順序列舉項目在枚舉中提供給構造函數的順序。但是,依靠這個功能是非常危險的;你不應該在你的代碼中做。
可能的重複http://stackoverflow.com/questions/289/how-do-you-sort-a-c-sharp-dictionary-by-value – MilkyWayJoe 2012-04-24 01:49:13
排序是什麼? 「Guid」? 'DateTime'?或者'KeyValuePair <,>'? – Enigmativity 2012-04-24 01:52:23
是的,對'DateTime' – 2012-04-24 01:59:26