none
将泛型集合按某个属性将相同的内容排在一起。依据此排序结果,如何使用linq语句将泛型集合其他的某个属性再次排序,但不改变相同内容排序好的形式

    问题

  • 以下是一个已经对泛型集合对象的"类型"属性排序好的结果

    id          类型

    4            老师

    1            老师

    5            学生

    3            学生

    2            学生

    6            学生

     排序代码:var query = from person in a
                            orderby person.类型 ascending /*descending*/
                            select person;

    我要根据这个排序结果再对id进行排序,但不得改变对"类型"排序的形式,如下

    id        类型

    1         老师

    4         老师

    2         学生

    3         学生

    5         学生

    6         学生

    如何做到,需要写一个新的linq语句,还是在已有的linq排序语句上做些修改?




    2016年12月5日 7:52

答案

  • Linq的order by 可以指定一个或多个属性,参考下面的句法

    var hold = MyList.OrderBy(x => x.StartDate)
                     .ThenByDescending(x => x.EndDate)
                     .ToList();

    var hold = (from x in MyList
               orderby x.StartDate, x.EndDate descending
               select x).ToList();


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2016年12月5日 8:41