我知道在正常的Linq语法中,orderby xxx descending是非常容易的,但我如何在Lambda表达式中做到这一点?
orderby xxx descending
使用System.Linq.Enumerable.OrderByDescending()吗?
System.Linq.Enumerable.OrderByDescending()
例如:
var items = someEnumerable.OrderByDescending();
正如Brannon所说,它是OrderByDescending和ThenByDescending:
OrderByDescending
ThenByDescending
var query = from person in people orderby person.Name descending, person.Age descending select person.Name;
等价于:
var query = people.OrderByDescending(person => person.Name) .ThenByDescending(person => person.Age) .Select(person => person.Name);
试试这个:
List<int> list = new List<int>(); list.Add(1); list.Add(5); list.Add(4); list.Add(3); list.Add(2); foreach (var item in list.OrderByDescending(x => x)) { Console.WriteLine(item); }
试试另一种方式:
var qry = Employees .OrderByDescending (s => s.EmpFName) .ThenBy (s => s.Address) .Select (s => s.EmpCode);
可查询。ThenBy < / >
LastOrDefault()通常不能工作,但是使用Tolist()它可以工作。没有必要像这样使用OrderByDescending。
LastOrDefault()
Tolist()
GroupBy(p => p.Nws_ID).ToList().LastOrDefault();
这只适用于你有一个数字字段的情况,但你可以在字段名前面放一个负号,像这样:
reportingNameGroups = reportingNameGroups.OrderBy(x=> - x.GroupNodeId);
然而,当你在int?或double?或decimal?字段上运行它时,它的工作方式与OrderByDescending略有不同。
int?
double?
decimal?
在OrderByDescending中会发生的情况是,空值将位于结尾,而在此方法中,空值将位于开头。如果您希望在不将数据分割成碎片并稍后拼接的情况下洗牌空值,这是非常有用的。