如何按值的 DateTime 属性对字典进行排序

Posted

技术标签:

【中文标题】如何按值的 DateTime 属性对字典进行排序【英文标题】:How to sort dictionary by DateTime attribute of the value 【发布时间】:2012-05-18 09:13:42 【问题描述】:

这是我的尝试

public MyClass

   public Guid ID set; get;
   public DateTime CreatedDateTime set; get;



ConcurrentDictionary<Guid, MyClass> dic = new ConcurrentDictionary<Guid,MyClass>();

我试试这个,但我遇到了一些麻烦......

dic.OrderBy(i=>i.Value.CreatedDateTime);

我遇到了类似的错误

Cannot implicitly convert type 'System.Linq.IOrderedEnumerable'

有什么线索吗?谢谢!!

【问题讨论】:

对字典进行排序真的没有意义......值不是这样存储的 @Muad'Dib 那么我该如何对这个字典进行排序呢?你能帮忙吗? dictionary 没有实现 IOrderdEnumerable,所以你不能在它上面使用 OrderBy()。字典中的项目是按任意顺序存储的,没有“第一个”元素和“最后一个”元素的概念,所以你不能真正对它进行排序 How do you sort a C# dictionary by value?的可能重复 【参考方案1】:

试试dic.Values.OrderBy(i=&gt;i.CreatedDateTime)

【讨论】:

以上是关于如何按值的 DateTime 属性对字典进行排序的主要内容,如果未能解决你的问题,请参考以下文章

在 JavaScript 中按值对字典进行排序

如何按值和键的多个条件对嵌套字典进行排序?

当每个字典都有不同的键时,如何按值对字典列表进行排序?

根据列表中的元素对列表作为值的字典进行排序

使用类提供的排序键按值对字典进行排序

按值对字典进行排序[重复]