【发布时间】:2017-04-21 18:05:36
【问题描述】:
我需要一些帮助来按嵌套字典的降序排序,这对我来说很难,因为我不是那么先进,我一直在搜索很多网站但没有成功。如果有人可以帮我解决这个问题,我将不胜感激。所以这里是代码
Dictionary<string, Dictionary<string, int>> champLeague = new Dictionary<string, Dictionary<string, int>>();
例如当我添加 -
巴塞罗那,阿森纳,1
曼联,利物浦,2
曼城,斯托克城,3
我想打印出按第二个字典的值降序排序的字典,如下所示:
var orderedDic = champLeague.OrderByDescending(x => x.Value.Values).ThenBy(x => x.Value.Keys)
然后试试foreach(var kvp in orderedDic){Console.WriteLine(kvp.Key)}
它向我抛出了一个异常:“未处理的异常至少必须实现一个对象 IComparable”
我想看起来像这样:
曼城
曼联
巴塞罗那
【问题讨论】:
-
字典用于查找,但是您可以像使用任何其他 IEnumerable 一样使用它。但是您如何尝试输出您的数据?你的例子不够通用。如果将相同的值添加到两个字典中,它们应该如何显示?例如
Barcelona, Arsenal, 1 Man United, Liverpool, 1您是要连续列出这些,还是应该合并所有字典及其值? -
例如当我添加 ... - 我们都是这里的程序员,你可以发布一些代码而不是列出一些不清楚它去向的数据。
-
从您的问题陈述中,我可以理解您想根据进球数来整理比赛。对于每对团队,都会有多个目标。我说的对吗?
-
听起来你正在使用字典来避免创建包含城市、团队和排名的类
-
好的,如果你想看一下,这里是带有 cmets 的完整代码 - pastebin.com/rivgGsWE
标签: c# .net linq dictionary