[英]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.