我有如下类型的数据,用于GridView进行显示(显示Name属性) public class MyData { public string GroupName { get; set; }// 组名 public int GroupOrder { get; set; }// 组排序索引 public int DataOrder { get; set; }// 组内数据索引 // 其他属性(略) } 如何使用linq首先使用GroupName进行分组,分组后使用GroupOrder对组进行排序,最后把每一个组里面的数据使用DataOrder进行数据排序? GroupOrder和DataOrder值为0~N,按0~N从小到大排列。 |
|
如何使用linq首先使用GroupName进行分组,分组后使用GroupOrder对组进行排序
你是按GroupName分组的,那分组数据如何按GroupOrder排序?你确认你的需求是正确的? 除非你是max,min,avg,first,last之类的,否则你这个需求就不对 |
|
后来我想了一下,先后顺序不重要,重要的是能对组排序、分组,然后对组内数据排序即可。 |
|
from l in list group l by l.GroupName?into g select g.OrderBy(x=>x.GroupOrder).ThenBy(x=>x.DataOrder?); 两次排序和OrderBy,ThenBy结果是不一样的,看你需要的应该是上面这种 |
|
40分 |
如果lz要的是这种结果,那么你的第一步完全无用“使用GroupName进行分组” 直接全排序一遍 |
非常感谢,晚上回去试一下。 |
|
那就3L的代码 |