C# 泛型List排序的实现

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

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

C# 泛型List排序的实现,c#,list,windows

代码

?

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

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

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());

            }

        }

    }

}

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

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

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

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

相关文章

  • C#简单操作:C#中List常用方法 判断存在、查找、排序

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

    2024年02月11日
    浏览(56)
  • 泛型List转List对象(Json转换工具类)

    上期讲解了 Java多线程查表(封装方法 多表通用) https://blog.csdn.net/weixin_56567361/article/details/128021905 因为是通用方法 返回的结果值为泛型ListT类型 在使用list时 需要转换为list对象 下面我将对比三种转换方法: 1 阿里巴巴fastJson方法  2 JAVA反射方式转换 3 强转方式 直接上测试图

    2024年02月15日
    浏览(37)
  • 泛型——List 优于数组

    数组与泛型有很大的不同: 1. 数组是协变的(covariant) 意思是:如果Sub是Super的子类型,则数组类型Sub[] 是数组类型Super[] 的子类型。 2. 泛型是不变的(invariant) 对于任何两种不同的类型Type1 和Type2,ListType1 既不是ListType2 的子类型也不是父类型。 现在有两段代码: 无论哪

    2024年02月02日
    浏览(36)
  • day32 泛型 数据结构 List

     概述         JDK1.5同时推出了两个和集合相关的特性:增强for循环,泛型         泛型可以修饰泛型类中的属性,方法返回值,方法参数, 构造函数的参数 Java提供的泛型类/接口 Collection, List, Set,Iterator 等 自定义的泛型 public class Student H,W {} 自定义的泛型方法 public

    2024年02月09日
    浏览(42)
  • List<HashMap<String,String>>实现自定义字符串排序(key排序、Value排序)

    SpringBoot+Vue3实现登录验证码功能 Java实现发送邮件(定时自动发送邮件) 换个角度使用Redis去解决跨域存取Session问题 Redis缓存穿透、击穿、雪崩问题及解决方法 Spring Cache的使用–快速上手篇 更多该系列文章请查看我的主页哦   根据一些真实需求遇到的问题,需进行排序后

    2024年02月07日
    浏览(79)
  • java通用实现List<自定义对象>中指定字段和指定排序方式

    Person类: 工具类: 结果:

    2024年02月04日
    浏览(45)
  • 在Java中如何给List进行排序?这7种方法都可以轻松实现!

    你好,这里是Java架构历程,每天一个Java知识,愿我们每个Java开发者早日成为Java架构师,加油! 在Java中我们经常需要对 ArrayList、LinkedList 或 CopyOnWriteArrayList 等列表进行排序,在Java8出现之前,排序虽然能够实现,但是代码写起来不是很优雅,而且性能上也没有什么优势。

    2024年02月08日
    浏览(45)
  • List的各种排序

    目录 Collections.sort对list进行排序 对象中某个属性进行排序 通过比较器进行比较 JAVA8特性Stream流进行排序 Stream升降序组合使用 Collections.sort对list进行排序 运行结果  对象中某个属性进行排序 运行结果  通过比较器进行比较 运行结果  JAVA8特性Stream流进行排序 Stream升降序组合

    2024年02月15日
    浏览(36)
  • Java 8 List 排序

    目录 一、List 排序的基本方法 二、List 按单个字段排序 三、List 按多个字段排序 四、List 按字段倒序排序 五、List 按字段排序并去重 六、List 按字段排序并分组 七、List 按字段排序并统计数量 八、总结 在 Java 8 中,我们可以使用 lambda 表达式和 Stream API 来对 List 进行排序。本

    2024年02月09日
    浏览(48)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包