如何订购条件
的清单举个例子:
我有一份INT列表
{1,45,63,1,2,100,46,12,2,100}
在代码中:
int[] ints = {1,45,63,1,2,100,46,12,2,100};
我想以两种方式订购ASC和DESC意味着:
switch (this.SortMode)
{
case ReportSortMode.DESC:
Rank = Rank.OrderByDescending();
break;
case ReportSortMode.ASC:
Rank = Rank.OrderBy();
break;
}
但我需要获得条件中的值:
ASC:{1,1,2,2,12,45,46,63,100,100}
DESC:{63,46,45,12,2,2,1,1,100,100}
表示:
Where(x =>x < 100)
可能使用Except
之类的:
var fakeval = rank.where(x => x<100)
switch (this.SortMode)
{
case ReportSortMode.DESC:
Rank = Rank.OrderByDescending().Except(fakeval);
break;
case ReportSortMode.ASC:
Rank = Rank.OrderBy();
break;
}
//to be full))
public enum ReportSortMode
{
DESC = 1,
ASC = 2,
}
但是没有工作
答案 0 :(得分:4)
对于 ASC 订单,您无需进行任何更改:
var intsasc = ints.OrderBy(x=>x);
对于 DESC ,下面的代码应该没问题:
var intsdesc = ints.OrderByDescending(x=>x<100 ? 1 : 0).ThenByDescending(x=>x);
结果:
63
46
45
12
2
2
1
1
100
100
答案 1 :(得分:2)
ASC:
ints
.OrderBy(x => x < 100)
.ThenBy(x => x)
DESC:
ints
.OrderBy(x => x < 100)
.ThenByDescending(x => x)
注意:不完全确定true是在错误之前还是相反的方式。您可能需要将OrderBy更改为OrderByDescending。