Dev*_*per 3 .net c# linq dictionary
我有这本词典
Dictionary<Guid, DateTime> myDic = new Dictionary<Guid, DateTime>();
Run Code Online (Sandbox Code Playgroud)
使用DateTime对DESC进行排序的最佳方法是什么?是LINQ吗?
如何在代码中完成?
谢谢!
如果Dictionary
不依赖当前实现的细节,则无法对其进行排序,但您可以使用LINQ的排序功能以任何特定顺序处理其条目:
foreach (KeyValuePair<Guid,DateTime> pair in myDict.OrderByDescending(p => p.Value)) {
// do some processing
}
Run Code Online (Sandbox Code Playgroud)
纯粹作为好奇心,您可以将有序键值对传递给Dictionary
构造函数,结果字典将按照枚举中提供给构造函数的顺序枚举.但是,依靠这种功能是非常危险的; 你不应该在你的代码中这样做.
您有错误的数据结构来实现您想要的.字典的目的是通过密钥提供快速访问.存在SortedDictionary对其自己的键进行排序,但是没有字典对其值进行排序,因为这没有意义.
假设您需要的是myDic中包含的DateTimes降序,您可以这样做:
var dateTimesDescending = myDic.Values.OrderByDescending(d => d);
Run Code Online (Sandbox Code Playgroud)
这将允许您按降序枚举值,但不会对字典进行排序.
归档时间: |
|
查看次数: |
7668 次 |
最近记录: |