[英]Sorting C# List based on Dictionary elements
在我的C#程序中,我有一個列表,並用Dictionary元素填充該列表:
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”]); 我的列表順序仍然相同。 知道我做錯了什么嗎? 謝謝
可能您尚未分配OrdeyBy
返回的結果。 你可以做:
mylist = mylist.OrderBy(x => x["val3"]).ToList();
這將對您的元素進行排序,並將它們放入新列表中。
您還可以使用List<T>.Sort
方法來執行此操作,而無需創建新列表:
mylist.Sort((x,y) => ((IComparable)x["val3"]).CompareTo(y["val3"]));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.