我有这本词典
Dictionary<Guid, DateTime> myDic = new Dictionary<Guid, DateTime>();
按DateTime对DESC进行排序的最佳方法是什么?是LINQ吗?
如何在代码中完成?
谢谢!
我有这本词典
Dictionary<Guid, DateTime> myDic = new Dictionary<Guid, DateTime>();
按DateTime对DESC进行排序的最佳方法是什么?是LINQ吗?
如何在代码中完成?
谢谢!
Dictionary
如果不依赖当前实现的详细信息,您无法对 a 进行排序,但您可以使用 LINQ 的排序功能以任何特定顺序处理其条目:
foreach (KeyValuePair<Guid,DateTime> pair in myDict.OrderByDescending(p => p.Value)) {
// do some processing
}
纯粹出于好奇,您可以将有序的键值对传递给Dictionary
的构造函数,生成的字典将按照在枚举中提供给构造函数的项目的顺序进行枚举。然而,依赖这个功能是非常危险的;你不应该在你的代码中这样做。
你有错误的数据结构来实现你想要的。字典的目的是通过键提供快速访问。存在对自己的键进行排序的 SortedDictionary,但没有对其值进行排序的字典,因为这没有意义。
假设您只需要 myDic 中包含的 DateTimes 降序排序,您可以这样做:
var dateTimesDescending = myDic.Values.OrderByDescending(d => d);
这将允许您按降序枚举值,但不会对字典进行排序。