C#排序、比较接口IComparable、IComparable「T」、IComparer用法

    技术2022-07-17  95

    1.IComparable、IComparable<T>

    自定义类继承接口IComparable<T>,可以调用 list.Sort()排序;

    using System.Collections.Generic; using System; [Serializable] public class Salary : IComparable<Salary> { public string name; public int age; public int salaryNum; public Salary(string _name, int _age, int _salary) { name = _name; age = _age; salaryNum = _salary; } //Sort()默认调用方法 //实现泛型接口:IComparable<Salary> public int CompareTo(Salary other) { return salaryNum.CompareTo(other.salaryNum); } //实现接口:IComparable,不建议使用 //public int CompareTo(object obj) //{ // return salaryNum.CompareTo((obj as Salary).salaryNum); //} }

    2.IComparer

    public class AgeComparor : IComparer<Salary> { public int Compare(Salary x, Salary y) { return x.age.CompareTo(y.age); } }

    调用list.Sort(new AgeComparor())排序

    Processed: 0.008, SQL: 10