c#中比较器的创建

来源:互联网 发布:蛋疼 知乎 编辑:程序博客网 时间:2024/05/23 23:38

其中,类需要集成 IComparable接口  。

         类内部需要实现 IComparable.CompareTo  方法。

         需要实现 IComparer.Compare(object obj1, object obj2) 方法

 

 public class student : IComparable
        {
            public int stuID { get; set; }
            public string stuName { get; set; }
            public car car1 { get; set; }
            public student(int id, string name, car tmp)
            {
                stuID = id;
                stuName = name;
                car1 = tmp;
            }

            //实现比较器
            int IComparable.CompareTo(object o)
            {
                student tmp = (student)o;
                return   string.Compare(stuName, tmp.stuName);
            }

            private class IDComparaterHelper : IComparer
            {
                int IComparer.Compare(object obj1, object obj2)
                {
                    student s1 = (student)obj1;
                    student s2 = (student)obj2;
                    if (s1.stuID > s2.stuID)
                    {
                        return 1;
                    }
                    else if (s1.stuID == s2.stuID)
                    {
                        return 0;
                    }
                    else
                    {
                        return -1;
                    }
                }
            }

            public static IComparer ImplIDCompare()
            {
                return (IComparer)new IDComparaterHelper();
            }

        }

0 0