C#泛型List排序的实现

本文主要介绍了C# 泛型List排序的实现,分享给大家,具体如下:

代码

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace L_List_sort { public class Person:IComparable<Person> { // 属性 public string name; public int age; // 构造 public Person(string name, int age) { this.name = name; this.age = age; } // 重写字符串 public override string ToString() { return "name: " + this.name + " age: " + this.age; } // 实现比较接口 public int CompareTo(Person other) { // 根据返回值排序 升序 if (this.age > other.age) { // 大于0 放后面 return 1; } else { // 小于 0 放前面 return -1; } } } class Program { static void Main(string[] args) { Console.WriteLine("泛型数组的排序"); #region 知识一 List自带排序方法 Console.WriteLine("--------------------List自带排序方法"); List<int> listInt = new List<int>(); listInt.Add(4); listInt.Add(2); listInt.Add(3); listInt.Add(1); Console.WriteLine("-------排序前"); PrintList<int>(listInt); Console.WriteLine("-------排序后"); // 排序 listInt.Sort(); PrintList<int>(listInt); #endregion #region 知识二 自定义类的排序 Console.WriteLine("--------------------自定义类的排序"); List<Person> listPerson = new List<Person>(); listPerson.Add(new Person("张三", 20)); listPerson.Add(new Person("李四", 18)); listPerson.Add(new Person("王五", 31)); listPerson.Add(new Person("曹操", 45)); Console.WriteLine("-------排序前"); PrintList<Person>(listPerson); Console.WriteLine("-------排序后"); // 继承排序(需要继承 接口 :IComparable<Person>) listPerson.Sort(); PrintList<Person>(listPerson); #endregion #region 知识三 通过委托函数进行排序 Console.WriteLine("--------------------通过委托函数进行排序"); listPerson.Clear(); listPerson.Add(new Person("张三", 20)); listPerson.Add(new Person("李四", 18)); listPerson.Add(new Person("王五", 31)); listPerson.Add(new Person("曹操", 45)); Console.WriteLine("-------排序前"); PrintList<Person>(listPerson); // 使用委托==>函数排序 listPerson.Sort(SortPerson); Console.WriteLine("-------排序后"); PrintList<Person>(listPerson); // Lambda 再次排序 listPerson.Sort((leftP, rightP) => { return leftP.age > rightP.age ? 1 : -1; }); Console.WriteLine("-------Lambda 再次排序后"); PrintList<Person>(listPerson); #endregion Console.ReadLine(); } // 排序函数 private static int SortPerson(Person leftP, Person rightP) { // 根据返回值排序 升序 if (leftP.age > rightP.age) { // 大于0 放后面 return -1; } else { // 小于 0 放前面 return 1; } } // 打印列表中元素的内容 private static void PrintList<T>(List<T> nList) { if (nList.Count == 0) Console.WriteLine("--列表为空数据"); for (int i = 0; i < nList.Count; i++) { Console.WriteLine(nList[i].ToString()); } } } }

 到此这篇关于C# 泛型List排序的实现的文章就介绍到这了,更多相关C# 泛型List排序内容请搜索易知道(ezd.cc)以前的文章或继续浏览下面的相关文章希望大家以后多多支持易知道(ezd.cc)!

推荐阅读

    金蝶凭证排序号乱了

    金蝶凭证排序号乱了,,1.金蝶的顺序号跟凭证号不一致怎么办没关系的,可以在凭证过滤界面选择按凭证号或者凭证顺序号来排序,一般都选择凭证号

    虾类安装经验分享!

    虾类安装经验分享!,,虾类安装经验分享: 1,机箱的电源光盘应该接近代理价格,而内存和硬盘的价格是在互联网上找到的即时价格。主板套件,视频卡

    word图标排序快捷键|word的快捷图标

    word图标排序快捷键|word的快捷图标,,1. word的快捷图标1、大家说的都是如何打开word,而不是像建空白文件夹那样,因为没有直接新建空白word

    在excel中如何排序

    在excel中如何排序,排序,如何,excel,先选定工作表要排序的数据范围,然后点击上方的“数据”选项,选中“排序”,出现如下画面选择好“主要

    电脑wifi共享密码|电脑wifi密码分享

    电脑wifi共享密码|电脑wifi密码分享,,1. 电脑wifi密码分享打开设置,点击蜂窝网络,开启蜂窝数据按钮,个人热点,开启允许其它人加入按钮,点击无线

    ppt快捷键分享|ppt快捷播放PPT快捷键

    ppt快捷键分享|ppt快捷播放PPT快捷键,,1. ppt快捷播放PPT快捷键1.最基本的快捷键F5,从第一张幻灯片开始放映ppt。2.CTRL+P,激活”激光笔“功