编辑
2025-02-04
C# 应用
00
请注意,本文编写于 91 天前,最后修改于 91 天前,其中某些信息可能已经过时。

目录

摘要
正文

摘要


在C#中使用LINQ(Language Integrated Query)进行数据排序是一种非常灵活和强大的方式。LINQ提供了多种排序方法,允许你对数据集合进行排序。最常用的排序方法是OrderByOrderByDescendingThenByThenByDescending

正文


操作符描述C#查询表达式语法
OrderBy按升序操作排序值orderby
OrderByDescending降序排序操作值orderby ... descending
ThenBy执行二次排序按升序orderby …, …
ThenByDescending执行二次排序以降序orderby …, … descending

一个例子

基础类

C#
class Hero { public int HeroNo { get; set; } public string Name { get; set; } public int Age { get; set; } public Hero(string name, int age, int heroNo) { Name = name; Age = age; HeroNo = heroNo; } }

调用

C#
private void btnSearch_Click(object sender, EventArgs e) { List<Hero> heroes = new List<Hero> { new Hero("张飞",38,100), new Hero("刘备",40,101), new Hero("关羽",39,102), new Hero("曹操",45,103), new Hero("孙权",31,104) }; var ret = from hero in heroes orderby hero.Age descending select hero; foreach (var item in ret) { lstMain.Items.Add(item.Name + " " + item.Age + " " + item.HeroNo); } }

image.png

多个排序条件

C#
var ret = from hero in heroes orderby hero.Age, hero.HeroNo descending select hero;

试一下ThenByDescending

C#
private void btnSearch_Click(object sender, EventArgs e) { List<Hero> heroes = new List<Hero> { new Hero("张飞",38,100), new Hero("刘备",40,101), new Hero("关羽",39,102), new Hero("曹操",45,103), new Hero("孙权",31,104), new Hero("黄忠",45,105), }; var ret = heroes.AsQueryable().OrderBy(x => x.Age).ThenByDescending(x => x.HeroNo); foreach (var item in ret) { lstMain.Items.Add(item.Name + " " + item.Age + " " + item.HeroNo); } }

image.png

本文作者:rick

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!