【发布时间】:2011-12-28 11:07:09
【问题描述】:
我有这份清单:
List<Dictionary<int, string>> list = new List<Dictionary<int, string>>();
我想根据 Dictionary int 值对其进行排序(升序)。我该怎么做?
例子:
Dictionary<int, string> Min1 = new Dictionary<int, string>();
Dictionary<int, string> Min2 = new Dictionary<int, string>();
Dictionary<int, string> Min3 = new Dictionary<int, string>();
Dictionary<int, string> Min4 = new Dictionary<int, string>();
Dictionary<int, string> Min5 = new Dictionary<int, string>();
Min1.Add(3, "name");
Min2.Add(1, "hello");
Min3.Add(5, "marco");
Min4.Add(4, "is");
Min5.Add(2, "my");
List<Dictionary<int, string>> list = new List<Dictionary<int, string>>();
list.Add(Min1);
list.Add(Min2);
list.Add(Min3);
list.Add(Min4);
list.Add(Min5);
// NOW I NEED TO ORDER list BASED ON DICTIONARY INT VALUE
// SO THE ORDER ON THE LIST SHOULD BE Min2, Min5, Min1, Min4, Min3
我想对列表进行排序,所以当我循环它并到达字符串时,我会打印“hello my name is marco”
【问题讨论】:
-
你能举个你想要的排序例子吗?
-
这没有多大意义。你想按每个字典中最小的键排序吗?你必须有一个值来比较不同的字典,并且需要选择它是哪一个。
-
你可以使用 SortedList 类
-
您的示例没有显示您的字典和列表之间的关系,您在示例中所说的字典只是键值对而不是字典。
-
仍然你的字典不好至少有一本大小为 2 的字典并显示你想要的,事实上在当前示例中你只需要 KeyValue 对而不是字典,事实上它们都可以在一个字典。
标签: c# linq list dictionary