首页 > 代码库 > 建议10:必须知道如何实现类比较器 接口实现对象排序

建议10:必须知道如何实现类比较器 接口实现对象排序

建议10:必须知道如何实现类比较器

所谓的比较器就只是一个接口,也只需要实现一个方法(public int CompareTo(object obj)).实现了比较器有什么用呢?除了顾名思义的可以比较两个实例的大小.还可以用来排序(比如是List集合,就直接调用.Sort()方法就可以 了.方便至极.定义Salay class:

public class Salary : IComparable<Salary>
        {
            public int RMB { get; set; }

            public int CompareTo(Salary obj)
            {
                if (this.RMB > obj.RMB)
                {
                    return 1;
                }
                else if (this.RMB == obj.RMB)
                {
                    return 0;
                }
                else
                {
                    return -1;
                }
            }
        }

调用:

List<Salary> salarys = new List<Salary>();
            for (int i = 0; i < 5; i++)
            {
                Salary salary = new Salary() {RMB=100*i };
                salarys.Add(salary);
            }
            salarys.Sort();
            foreach (var item in salarys)
            {
                Console.WriteLine(item.RMB);
            }

排序就变成如此简单.