在我的C#程序中我有一个名单,我用字典元素填充C#列表:排序基于字典的元素
List<Dictionary<string, object>> mylist = new List<Dictionary<string, object>>();
Dictionary<string, object> d1 = new Dictionary<string, object>();
d1.Add("val1", 1);
d1.Add("val2", 2);
d1.Add("val3", 3);
mylist.Add(d1);
Dictionary<string, object> d2 = new Dictionary<string, object>();
d2.Add("val1", 4);
d2.Add("val2", 5);
d2.Add("val3", 6);
mylist.Add(d2);
Dictionary<string, object> d3 = new Dictionary<string, object>();
d3.Add("val1", 7);
d3.Add("val2", 8);
d3.Add("val3", 9);
mylist.Add(d3);
我想根据字典中的元素一定的元素对列表进行排序,例如,根据字典中的“val3”对象对列表进行排序。我试过这个: mylist.OrderBy(x => x [“val3”]); 我的列表顺序仍然相同。任何想法我做错了什么?谢谢
'OrderBy'会给你一个新的IEnumerabe ...尝试'MYLIST = mylist.OrderBy(..)ToList ()' – Carsten
'因为这是正确的顺序。尝试OrderByDescending。并且'是',OrderBy的结果是您应该操作的另一个IEnumarable。 –
正如@ArtyomKharlamov所说,你所说的价值观已经按你想要的顺序。也许你在等别的东西?你想保留订购的字典吗?如果没有,你可以使用一个SelectMany,然后通过键 – Gonzix