我知道在正常的Linq语法中, orderby xxx descending 非常简单,但我如何在Lambda表达式中执行此操作?
orderby xxx descending
正如布兰农所说,它是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);
使用 System.Linq.Enumerable.OrderByDescending() ?
System.Linq.Enumerable.OrderByDescending()
例如:
var items = someEnumerable.OrderByDescending();
试试这个:
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);
Queryable.ThenBy
这仅适用于您有数字字段的情况,但您可以在字段名称前加上减号,如下所示:
reportingNameGroups = reportingNameGroups.OrderBy(x=> - x.GroupNodeId);
但是,当您在 int? 或 double? 或 decimal? 字段上运行它时,这与 OrderByDescending 略有不同 .
int?
double?
decimal?
OrderByDescending
会发生什么是在 OrderByDescending 上,空值将在最后,与此方法相比,空值将在开头 . 如果您希望在不将数据拆分成片段并稍后拼接它的情况下随机播放空值,这将非常有用 .
LastOrDefault() 通常不起作用但是 Tolist() 它会起作用 . 没有必要像这样使用 OrderByDescending 使用 Tolist() .
LastOrDefault()
Tolist()
GroupBy(p => p.Nws_ID).ToList().LastOrDefault();
6 回答
正如布兰农所说,它是OrderByDescending和ThenByDescending:
相当于:
使用
System.Linq.Enumerable.OrderByDescending()
?例如:
试试这个:
试试另一种方式:
Queryable.ThenBy
这仅适用于您有数字字段的情况,但您可以在字段名称前加上减号,如下所示:
但是,当您在
int?
或double?
或decimal?
字段上运行它时,这与OrderByDescending
略有不同 .会发生什么是在
OrderByDescending
上,空值将在最后,与此方法相比,空值将在开头 . 如果您希望在不将数据拆分成片段并稍后拼接它的情况下随机播放空值,这将非常有用 .LastOrDefault()
通常不起作用但是Tolist()
它会起作用 . 没有必要像这样使用OrderByDescending
使用Tolist()
.