C#——List排序

简介: C#——List排序

list 是我们常用到的数据类型,我们常常会用list去处理很多的数据。我们也常常会有这样的一个操作,就是排序sort list 所在的命名空间是System.Collections.Generic

排序的方式:

对于基本的数据类型,本身又icompare的继承的我们可以直接使用list.sort();进行升序排列。不需要做任何操作,如我们定义:

List<int> testList = new List<int>();  
    testList.Add(2);  
    testList.Add(1);  
       testList.Add(3);  
       testList.Add(4);  
       testList.Add(5);  
       testList.Add(0);

直接使用testList.sort();就能得到 012345的序列。

有时用户需要按某项排序,但是查询结果以List格式存储,我们当然可以自己编写一个快速排序的方法进行排序,但是还有多个选择,并且可能比你写的短、效率也不差,那不如在恰当的时候选择其他方法对List进行排序。

1,对于普通的int,double型列表List,如下:

List<int> list = new List<int>();
list.Sort(); // 升序排序
list.Reverse(); // 降序排序:先升序排序,再反转顺序

对于Class型的列表List,根据类的某一属性进行排序,如下:

方法一: List的OrderBy与OrderByDescending方法

list.OrderBy(a => a.Value).ToList();//升序
list.OrderByDescending(a => a.Value).ToList();//降序

方法二:使用Sort方法,

list.Sort((a, b) => a.Value.CompareTo(b.Value));//升序
list.Sort((a, b) => b.Value.CompareTo(a.Value));//降序

方法三:使用委托

list.Sort(delegate (CapVal cv1, CapVal cv2) { return cv1.Value.CompareTo(cv2.Value); });

方法四:使用Linq

c#的一大特色就是Linq,他遍布c#里里外外,利用他可以减少大量的代码,不过他是从SQL中出来的,所以SQL还是了解之后,这个就好懂了。具体代码如下所示:

List<CapVal> upList = (from cv in list
                       orderby cv.Value ascending
                       select cv).ToList();//升序
List<CapVal> downList = (from cv in list
                         orderby cv.Value descending
                         select cv).ToList();//降序

需要注意的是,系统自带的变量(int,float,double......)一般都可以直接Sort,自定义类sort有两种方法:一是继承接口(IComparable);二是在Sort中传入委托函数。

目录
相关文章
|
8月前
|
安全 C#
C# List基本用法
C# List基本用法
|
Java
【Java基础】Java8 使用 stream().sorted()对List集合进行排序
【Java基础】Java8 使用 stream().sorted()对List集合进行排序
384 0
|
5天前
|
前端开发 JavaScript UED
React 拖拽排序组件 Draggable List
在现代Web应用中,拖拽排序功能显著提升用户体验。使用React结合`react-dnd`库,可以轻松创建高效且易于维护的拖拽排序组件。通过简单的拖拽操作,用户能直观调整列表项顺序,适用于任务管理、看板工具等场景。实现步骤包括项目初始化、安装依赖、创建基础组件、添加拖拽功能及管理状态和事件。常见问题如拖拽效果不流畅、顺序未更新等可通过性能优化、正确处理索引交换等方式解决。移动端支持也需考虑,确保跨平台的良好体验。
58 25
|
2月前
|
NoSQL Java Redis
List集合按照由小到大排序或者由大到小排序
List集合按照由小到大排序或者由大到小排序
56 0
|
4月前
|
NoSQL Java Redis
List集合按照由小到大排序或者由大到小排序
List集合按照由小到大排序或者由大到小排序
31 3
|
5月前
|
缓存 容器
从一个文件中讲稿未知数目的整数。对这些整数排序,然后把它们输出到标准输出设备。选用vector、deque 还是 list?
从文件读取未知数量的整数,排序后输出。选用`std::vector`因其能高效读取大量数据至连续内存,直接使用内置排序,提升缓存效率。避免使用`std::deque`和`std::list`,前者内存管理开销大,后者排序及随机访问较慢。
54 14
|
6月前
|
Java API 存储
Java如何对List进行排序?
【7月更文挑战第26天】
290 9
Java如何对List进行排序?
|
5月前
|
存储 Java API
【Java高手必备】揭秘!如何优雅地对List进行排序?掌握这几种技巧,让你的代码瞬间高大上!
【8月更文挑战第23天】本文深入探讨了Java中对List集合进行排序的各种方法,包括使用Collections.sort()、自定义Comparator以及Java 8的Stream API。通过示例代码展示了不同情况下如何选择合适的方法:从简单的整数排序到自定义类对象的排序,再到利用Comparator指定特殊排序规则,最后介绍了Stream API在排序操作中的简洁应用。理解这些技术的区别与应用场景有助于提高编程效率。
161 4
|
8月前
|
开发框架 .NET C#
C#学习相关系列之Linq常用方法---排序(一)
C#学习相关系列之Linq常用方法---排序(一)
|
8月前
|
C#
C#中sort排序相关用法介绍
C#中sort排序相关用法介绍

热门文章

最新文章