var ary = (from t in list orderby t.IsToday descending group t by t.Guid into g select new { key = g.Key, source = g.OrderBy(tt => tt.InsertTime) }).ToList(); var ary2 = (from t1 in ary from t2 in t1.source select t2).ToList();试试
试了一下。如图; foreach ary2
var ary = (from t in list orderby t.IsToday descending, t.InsertTime ascending group t by t.Guid into g select new { key = g.Key, source = g.OrderBy(tt => tt.InsertTime) }).ToList(); var ary2 = (from t1 in ary from t2 in t1.source select t2).ToList();这样的数据没问题吧
list = (from f in list orderby f.Guid descending, f.IsToday descending select f).ToList();
这样的结果还是有问题呀。我不需要按照Guid排序。但是Guid相同的需要在一起。
而这里按照Guid排序了之后,对我的按照InsertTime排序产生了影响。乱序了。就。
这个需求是优点麻烦。但是人为还是可以排序的。很多Guid不同的也没有按照InsertTime排序啊。关键就是这点。
1:Guid相同的,在一起,然后再按照InsertTime排序。结果1
2:剩下的Guid 按照 InsertTime 在排序得到的结果2
Guid。不一样。不需要在一起的时候,也没有按照InsertTime进行排序啊大神
var ary = (from t in list
orderby t.IsToday descending
group t by t.Guid into g
select new { key = g.Key, source = g.OrderBy(tt => tt.InsertTime) }).ToList(); var ary2 = (from t1 in ary
from t2 in t1.source
select t2).ToList();试试
foreach ary2
var ary = (from t in list
orderby t.IsToday descending, t.InsertTime ascending
group t by t.Guid into g
select new { key = g.Key, source = g.OrderBy(tt => tt.InsertTime) }).ToList(); var ary2 = (from t1 in ary
from t2 in t1.source
select t2).ToList();这样的数据没问题吧
下面是把分组结果解析回来的List
还有我ary和ary2都没判空就直接ToList()了,你用的时候自己注意下是不是要判断
list = (from f in list
orderby f.IsToday descending, f.InsertTime
group f by f.Guid into g
from m in g select m).ToList();这样不就好了?