最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

C#List的3种排序方法

来源:博客园

List是C#常用的数组,它较之前的ArryList更加灵活,解决了Arrylist会出现装箱和拆箱的不安全问题,它是一种动态数组,可以存储对象或元素的集合。在处理比多的数据时,对list排序也非常重要,这样可以对数据更加容易的处理。本文将讲述3种list的排序方法。


【资料图】

方法1:Sort方法

这是C#最常用的排序方法,此方法可以让list按升序的方式排列。代码如下:

List numbers = new List {5, 2, 9, 1, 6};numbers.Sort();

比较简单的升序排序方式可以用它。

方法2:使用比较函数排序

在某些情况下,您可能想要对列表排序按照比较逻辑。在这个场景中,您可以使用比较函数。比较函数使用比较委托定义的,它应该返回一个整数,代表了两个元素相比较的相对顺序。使用这种方法的语法比较函数如下:

Listnames=newList{"刘德华","张飞","赵云","公众号:dotnet开发跳槽"};names.Sort((x, y) => x.Length.CompareTo(y.Length));    foreach (var name in names)    {      Console.WriteLine(name);    }

输出结果:张飞,赵云,刘德华,公众号:dotnet开发跳槽

这个案例主要是安装字符串的长度来比较。

方法3:OrderBy和ThenBy

c#数组list排序的另一种方法是通过使用LINQ方法中的OrderBy和ThenBy 。OrderBy方法可以安装list中的指定元素升序排序,而ThenBy方可以附件排序按升序排序。使用OrderBy和ThenBy的示例如下:

Listlist=newList();list.Add(newCustomer{id=1,name="刘德华",age=56,period=40});list.Add(newCustomer{id=2,name="张学友",age=52,period=35});list.Add(newCustomer{id=3,name="黎明",age=58,period=33});list.Add(newCustomer{id=4,name="郭富城",age=60,period=36});list.Add(newCustomer{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; }publicstringname{get;set;}        public int age { get; set; }        public int period { get; set; }}

结语

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

参考:https://www.c-sharpcorner.com/article/3-ways-to-sort-a-c-sharp-list/

来源公众号:DotNet开发跳槽

关键词: