1.1.1 用于排序规则的IComparable接口使用介绍

        在C#中,IComparable 是一个核心接口,用于定义对象的自然排序规则。实现该接口的类可以指定其实例如何与其他实例比较大小,从而支持排序操作(如 Array.Sort()List.Sort()).

       1. 该接口CompareTo返回值含义:

      -1:当前对象 小于 比较对象(应排在前面)。

      0:两对象 相等

                      1:当前对象 大于 比较对象(应排在后面)

        2.实际应用场景

                对集合调用 Sort() 时自动生效。

                在 SortedListSortedDictionary 等有序容器中使用。

                为LINQ的 OrderBy() 提供基础比较能力。

一、实际例子如下:

using System;
using System.Collections.Generic;

public class Person : IComparable
{
    public string Name { get; set; }
    public int Age { get; set; }

    public Person(string name, int age)
    {
        Name = name;
        Age = age;
    }

    // 实现 CompareTo 方法(按年龄排序)
    public int CompareTo(Person? other)
    {
        if (other == null) return 1; // null视为最小
        return Age.CompareTo(other.Age); // 使用int的CompareTo方法
    }

    public override string ToString() => $"{Name} ({Age})";
}

class Program
{
    static void Main()
    {
        var people = new List
        {
            new Person("Alice", 25),
            new Person("Bob", 20),
            new Person("Charlie", 30)
        };

        // 排序(依赖IComparable的实现)
        people.Sort();

        foreach (var person in people)
        {
            Console.WriteLine(person); // 输出按年龄升序
        }
    }
}
上例中输出:可见按照年龄进行了升序排列:
Bob (20)
Alice (25)
Charlie (30)

你可能感兴趣的:(C#,IComparable)