C# list的sort排序

这篇具有很好参考价值的文章主要介绍了C# list的sort排序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言:

值类型的排序:

方法一:直接调用sort函数

方法二:通过C# ling表达式与CompareTo接口配合使用

方法三:降序的实现

对于自定义类型的sort排序 

方法一:通过实现IComparable接口重写CompareTo方法来排序

方法二:通过ling表达式实现 


前言:

        有时需要对List列表中内容进行排序,List 的Sort方法排序有三种结果 1,0,-1分别表示大于,等于,小于。List的sort的方法如何使用,如何实现降序和升序

值类型的排序:

方法一:直接调用sort函数

 static void Main(string[] args)
   {

            List<int> sortList = new List<int>() { 100, 101, 50, 4 };
            sortList.Sort();

            foreach (var i in sortList)
            {
                Console.Write(i);
                Console.Write(",");
            }
            sortList.Sort((a, b) => a.CompareTo(b));
            Thread.Sleep(10000);
        }

输出结果: 4,50,100,101,默认情况下,通过sort排序是升序 

方法二:通过C# ling表达式与CompareTo接口配合使用

sortList.Sort((a, b) => a.CompareTo(b)); //升序排序,与sortList.Sort()结果一样

方法三:降序的实现

可以直接在对比较结果取负值

 sortList.Sort((a, b) => -a.CompareTo(b)); //结果取负值,升序就变成了降序了

查看int32源码我们看到,int32 是实现了CompareTo接口的

public struct Int32 : IComparable, IFormattable, IConvertible, IComparable<int>, IEquatable<int>
  {
    internal int m_value;
    [__DynamicallyInvokable]
    public const int MaxValue = 2147483647;
    [__DynamicallyInvokable]
    public const int MinValue = -2147483648;

    public int CompareTo(object value)
    {
      if (value == null)
        return 1;
      if (!(value is int num))
        throw new ArgumentException(Environment.GetResourceString("Arg_MustBeInt32"));
      if (this < num)
        return -1;
      return this > num ? 1 : 0;
    }

    [__DynamicallyInvokable]
    public int CompareTo(int value)
    {
      if (this < value)
        return -1;
      return this > value ? 1 : 0;
    }

}

对于自定义类型的sort排序 

方法一:通过实现IComparable接口重写CompareTo方法来排序

    public class Dog : IComparable<Dog>

    {
        private float _price;

        public float price => _price;
        public Dog(float price)
        {
            _price = price;
        }

        public int CompareTo(Dog other)
        {
            if (_price > other.price)
                return 1;
            if (_price == other.price)
                return 0;
            return -1;
        }

        public override string ToString()
        {
            return _price.ToString();
        }
    }

 文章来源地址https://www.toymoban.com/news/detail-615468.html

        static void Main(string[] args)
        {
            List<Dog> dogs = new List<Dog>();
            dogs.Add(new Dog(12));
            dogs.Add(new Dog(10));
            dogs.Add(new Dog(14));

            dogs.Sort();

            foreach (var i in dogs)
            {
                Console.Write(i);
                Console.Write(",");
            }
            Thread.Sleep(10000);
        }

输出结果:为 10,12,14,

方法二:通过ling表达式实现 

      static void Main(string[] args)
        {
            List<Dog> dogs = new List<Dog>();
            dogs.Add(new Dog(12));
            dogs.Add(new Dog(10));
            dogs.Add(new Dog(14));

            dogs.Sort((a, b) =>
            {
                if (a.price > b.price)
                    return 1;
                if (a.price == b.price)
                    return 0;
                return -1;
            });

            foreach (var i in dogs)
            {
                Console.Write(i);
                Console.Write(",");
            }
            Thread.Sleep(10000);
        }

 

到了这里,关于C# list的sort排序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C#中sort排序相关用法介绍

     C#中,List.Sort() 不仅为我们提供了默认的排序方法,还为我们提供了4种自定义排序的方法,通过默认排序方法,我们无需重写任何Sort()方法的实现代码,就能对单参数类型的List数据进行单一规则的排序,如果通过对这些方法进行改进我们可以轻松做到对多参数、多规则的复

    2024年02月15日
    浏览(60)
  • 笔记--java sort() 方法排序

    最近在刷一道算法题 《字符串重新排序》时,发现自己有思路但是写代码的时候就无从下手了 而且看了答案之后还没看懂 关键就是基础不好 对于排序没有理解(虽然我学过常用的排序算法 但是都是理念 实践少) 从实践和原理出发 重点是从实践出发 探讨如何使用 sort()方法

    2024年02月07日
    浏览(51)
  • 【笔记】Unity编程(C#语言详解)

    从灵魂、身体、行为三个层面来看,脚本(Script)为游戏注入了生动的元素。脚本代码并非独立运行的程序,它依赖于Unity引擎的运行环境,并需附加到特定对象上。在Unity脚本中,没有像传统程序中的\\\"main\\\"函数,而是用于更新游戏循环中的对象。Unity为脚本提供了API以便访问

    2024年02月03日
    浏览(52)
  • C#,归并排序算法(Merge Sort Algorithm)的源代码及数据可视化

    归并算法采用非常经典的 分治策略 ,每次把序列分成n/2的长度,将问题分解成小问题,由复杂变简单。 因为使用了递归算法,不能用于大数据的排序。 核心代码: using System; using System.Text; using System.Collections.Generic; using System.Windows.Forms; namespace WindowsFormsApp6 {     public parti

    2024年02月02日
    浏览(60)
  • Unity学习笔记--使用 C# 开发一个 LRU

    什么是 LRU 在计算机系统中,LRU(Least Recently Used,最近最少使用)是一种缓存置换算法。缓存是计算机系统中的一种能够高速获取数据的介质,而缓存置换算法则是在缓存空间不足时,需要淘汰掉部分缓存数据以腾出空间,使得后来需要访问数据能够有更多的缓存空间可用。

    2024年02月13日
    浏览(125)
  • C# 泛型List排序的实现

    本文主要介绍了C# 泛型List排序的实现,分享给大家,具体如下: 代码 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 9

    2024年02月12日
    浏览(42)
  • C#中List的3种排序方法

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

    2024年02月13日
    浏览(48)
  • C#简单操作:C#中List常用方法 判断存在、查找、排序

    目常用List来进行数据操作管理,有一些方法经常百度,所以这里记录下。 目录 1. List判断元素是否存在,返回bool 2. List查找,返回对象 3. List排序 4. 对象属性打印 5. List 其他方法  

    2024年02月11日
    浏览(56)
  • 数组(Arrays)和列表(Lists) — Unity C#

    数组是 C# 提供的最基本的集合。将它们视为一组值的容器,在编程术语中称为元素,每个值都可以单独访问或修改。 · 数组可以存储任何类型的值;所有元素必须属于同一类型。 · 数组的长度或元素数量是在创建时设置的。 · 如果创建时没有指定初始值,则每个元素都会被

    2024年01月23日
    浏览(67)
  • C 语言实现 C# 中的 List 泛型列表

    //下面是一个简单的用 C 语言实现 C# 中的 List 泛型列表的示例代码,代码中有详细的注释,帮助你理解代码的实现细节。 人工智能生成的. 以后可以用人工智能实现很多代码了. 简单的活让它来干.

    2024年02月10日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包