C#中List的3种排序方法
原文链接:https://blog.csdn.net/lwf3115841/article/details/130459042
https://blog.csdn.net/Pei_hua100/article/details/108072643
ist是C#常用的数组,它较之前的ArryList更加灵活,解决了Arrylist会出现装箱和拆箱的不安全问题,它是一种动态数组,可以存储对象或元素的集合。在处理比多的数据时,对list排序也非常重要,这样可以对数据更加容易的处理。本文将讲述3种list的排序方法。
方法1:Sort方法
这是C#最常用的排序方法,此方法可以让list按升序的方式排列。代码如下:
List<int> numbers = new List<int> {7, 4, 5, 3, 8};
numbers.Sort();
比较简单的升序排序方式可以用它。
方法2:使用比较函数排序
在某些情况下,您可能想要对列表排序按照比较逻辑。在这个场景中,您可以使用比较函数。比较函数使用比较委托定义的,它应该返回一个整数,代表了两个元素相比较的相对顺序。使用这种方法的语法比较函数如下:
List<string> names = new List<string> { "刘玄德", "关羽", "张飞", "赵云","忧郁的蛋" };
names.Sort((x, y) => x.Length.CompareTo(y.Length));
foreach (var name in names)
{
Console.WriteLine(name);
}
输出结果:关羽,张飞,赵云,刘玄德,忧郁的蛋
这个案例主要是安装字符串的长度来比较。
方法3:OrderBy和ThenBy
c#数组list排序的另一种方法是通过使用LINQ方法中的OrderBy和ThenBy 。
在C#的List操作中,针对List对象集合的排序我们可以使用OrderBy、OrderByDescending、ThenBy、ThenByDescending等方法按照特定的对象属性进行排序,其中Orderby表示按指定的第一个属性升序排序,OrderByDescending表示按指定的第一个属性降序排序,如果排序需要使用到不止一个条件的时候,可先使用OrderBy或者OrderByDescending方法排序完成后,再在方法链中调用ThenBy或者ThenByDescending对第二个条件排序,ThenBy会进行升序排序,ThenByDescending则是进行降序排序。使用OrderBy和ThenBy的示例如下:
List<Customer> list = new List<Customer>();
list.Add(new Customer { id = 1, name = "刘德华", age = 56, period=40 });
list.Add(new Customer { id = 2, name = "张学友", age = 52, period = 35 });
list.Add(new Customer { id = 3, name = "黎明", age = 58, period = 33 });
list.Add(new Customer { id = 4, name = "郭富城", age = 60, period = 36 });
list.Add(new Customer { id = 5, name = "古天乐", age = 60, period = 30 });
var sortlist = list.OrderBy(o=>o.age).ThenBy(t=>t.period).ToList();
//这是类
public class Customer
{
public int id { get; set; }
public string name { get; set; }
public int age { get; set; }
public int period { get; set; }
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了