繁体   English   中英

c#订购一个List <Dictionary<string,object> &gt;

[英]c# order a List<Dictionary<string,object>>

如何订购List<Dictionary<String,object>>该对象只包含字符串

字典的结构如下

[name: mario]
[surname: rossi]
[address: xxxxxx]
[age: 40]

我想按“年龄”订购这些词典的名单你可以帮我吗?

我尝试过:

myList.Select(x => x.OrderBy(y=>y.Value)) 

它给了我这个错误:值不是一个字符串(好吧我和他一起对,它是一个对象,我要以某种方式进行投射)但更重要的是我无法告诉“orderby”方法它必须按年龄排序

你想要一些东西

var sorted = myList.OrderBy(dict => Convert.ToInt32(dict["age"]));

我在防御上使用了Convert.ToInt32因为你使用另一种数据类型的可能性很小,而将(拆箱)转换为错误类型会引发异常。

myList.Sort((x,y) => ((int)x["age"]).CompareTo((int)y["age"]));

或类似的:

myList.Sort((x, y) => Comparer.Default.Compare(x["age"], y["age"]));

然而! 如果你使用正确的类型而不是字典会更容易; 然后它只会是:

myList.Sort((x,y) => x.Age.CompareTo(y.Age));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM