C# 嵌套字典排序

linq两种写法,如下所示:

1.

var resultInformation = from outer in userInformation
                        from inner in outer.Value
                        let data = new { Outer = outer.Key, Inner = inner.Key, Value = inner.Value }
                        orderby data.Outer, data.Inner, data.Value
                        select data;

2.

var resultInformation =
    from student in userInformation
    orderby student.Key
    select new
    {
        studentId = student.Key,
        courses =
            from courseScore in student.Value
            orderby courseScore.Value descending
            select new {
                course = courseScore.Key,
                score = courseScore.Value
            }
    };

等价写法:

var resultInformation = userInformation
    .SelectMany(i => i.Value, (key, inner) => new { Outer = key, Inner = inner.Key, Value = inner.Value})
    .OrderBy(e => e.Outer)
    .ThenBy(e => e.Inner)
    .ThenBy(e => e.Value);

原文地址:https://www.cnblogs.com/zhm001/p/11599479.html

时间: 2024-10-12 01:55:27

C# 嵌套字典排序的相关文章

列表嵌套字典,根据字典某一key排序

在返回列表嵌套字典时候,往往需要对数据进行一定的处理:按照字典中某一个key排序 In [87]: a = [{"name": "牛郎", "age": 23},{"name":"许仙", "age": 20},{"name":"董永", "age": 18}] In [88]: a Out[88]: [{'name': '牛郎

Python 字典 列表 嵌套 复杂排序大全

https://blog.csdn.net/ray_up/article/details/42084863 一: 字典排序 解析: 使用sorted 方法, 排序后的结果为一个元组. 可以字符串排序(那数字肯定更没问题了!) 1:  按照键值(value)排序 a = {'a': 'China', 'c': 'USA', 'b': 'Russia', 'd': 'Canada'}b = sorted(a.items(), key=lambda x: x[1], reverse=True)结果:[

列表中嵌套字典,根据字典的值排序

格式:数据类型为列表,列表元素为字典.由字典组织的列表形式. 分析:可以将列表中的字典先放入到一个大字典中,对整个字典进行排序,在排序完成后,再转换为列表包含字典的形式即可 现在有一个列表,根据每个字典的值进行排序. dict_list = [{"ming": 87}, {"mei": 93}, {"hua": 68}, {"jon": 75}, {"ston": 100}, {"jack&quo

按照字典排序

按照字典排序, 按照字典的value排序,类似sort -k命令 import operator x = {1:2,3:4, 4:3, 2:1, 0:0} sorted x =sorted(x.iteritems(), key = operator.itemgetter(1)) 0表示根据key排序,1表示根据value排序 In [33]: sorted(x.iteritems(),key=operator.itemgetter(0))                             

字典排序及应用

字典排序: 因为我们都知道字典是无序的,所以也没有想过字典怎么排序,直到--唉 废话不多说,先看按值.按键排序的方法吧. 有一个字典dic1 = {'tired': 1, 'car': 2, 'man': 2, 'of': 1, 'front': 1, 'who': 2, 'in': 1, 'run': 2, 'exhausted': 1, 'get': 2, 'behind': 1} 按值排序:dic2 = sorted(dic1.items(),key=lambda d:d[1],rever

2016.7.30 正则表达式 字典排序

正则表达式:我要匹配字符串中两个引号中的内容 例如 str = '  map.put("abdicate","v.正式放弃(权力.责任):throne"); ' 匹配后要获得 abdicate 以及 v.正式放弃(权力.责任):throne 即引号中的红色内容 正则表达式为\"([^\"]*)\" :[^\"]是指除了"以外的字符 这样就成功得到了需要的内容.注意findall函数的使用 字典排序: key=lamb

Python-列表嵌套字典-名片管理系统(适合刚学习完字典和列表的同学练手)

why?我要写这个程序.这个程序是在复习字典的使用并且配合前面复习过的列表来写的一个程序.实现一个名片的管理! 什么时候用列表什么时候用字典呢?面对这个问题我的想法是,当你存取的数据类型都是一样的时候,使用列表,当你存取的数据类型不一样时就用字典.这里说明一下数据类型不一样不是指整形或者字符型 举个例子:如果你需要存很多人的姓名,仅仅这一个属性,就用列表来进行处理,当你要存取不仅仅是人名,包括年龄,性别,国籍等等这些信息时,这时候用字典是最合适的. 在编写这个程序时,首先考虑2个问题: 1.列表

<转>python字典排序 关于sort()、reversed()、sorted()

一.Python的排序 1.reversed() 这个很好理解,reversed英文意思就是:adj. 颠倒的:相反的:(判决等)撤销的 print list(reversed(['dream','a','have','I'])) #['I', 'have', 'a', 'dream'] 2.让人糊涂的sort()与sorted() 在Python 中sorted是内建函数(BIF),而sort()是列表类型的内建函数list.sort(). sorted() sorted(iterable[,

C# 字典排序Array.Sort

Array.Sort可以实现便捷的字典排序,但如果完全相信他,那么就容易产生些异常!太顺利了,往往是前面有坑等你. 比如:微信接口,好多地方需要签名认证,签名的时候需要用的字典排序,如果只用Array.Sort()会出现签名异常的情况,而且是偶尔出现. 问题就在于他的排序默认没有区分大小写,这跟微信的签名将不匹配,所以还是需要自己实现比较的方法 public class DictionarySort : System.Collections.IComparer { public int Comp