C#中List的3种排序方法

List是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 。OrderBy方法可以安装list中的指定元素升序排序,而ThenBy方可以附件排序按升序排序。使用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; }
 }

 

总结

以上介绍了List排序的三种方法,sort、比较函数、orderby和ThenBy。三种方式各有用处,根据你的项目情况来选择,比较单一普通的推荐用第一个,第二种和第三种方法比较复杂的list使用。这三种排序主要是介绍升序排序,倒序排序还有哪些方法呢?欢迎留言。希望本文对你有所收获,本文适合初学者阅读。

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

忧郁的蛋~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值