zoukankan      html  css  js  c++  java
  • IEqualityComparer<T>接口

    IEqualityComparer<T>接口的对象的主要作用在于自定义判断两个对象是否相等。

    其中最常用的方法: bool Equals(T x, T y);

    实现该方法用于比较两个对象是否相等。如果指定的对象相等,则为 true;否则为 false。

    代码示例:

     
        class Program
        {
            static void Main(string[] args)
            {
                People p1 = new People(1, "刘备", 23);
                People p2 = new People(1, "关羽", 22);
                People p3 = new People(1, "张飞", 21);
                List<People> listP1 = new List<People>();
                listP1.Add(p1);
                listP1.Add(p2);
                listP1.Add(p3);
    
                People p4 = new People(2, "赵云", 23);
                People p5 = new People(2, "黄忠", 22);
                People p6 = new People(2, "马超", 21);
                List<People> listP2 = new List<People>();
                listP2.Add(p4);
                listP2.Add(p5);
                listP2.Add(p6);
    
                Comparers c = new Comparers();
                bool b = listP1.SequenceEqual(listP2, c);   //只要集合中的对象年龄相等就视对象为相等
                Console.WriteLine(b);   //输出 True
    
                Console.ReadKey();
            }
        }
    
        public class Comparers : IEqualityComparer<People>
        {
    
            public bool Equals(People p1, People p2)
            {
                if (p1.Age == p2.Age)
                {
                    return true;
                }
                return false;
            }
    
            public int GetHashCode(People obj)
            {
                throw new NotImplementedException();
            }
        }
    
        public class People
        {
            public People(int id, string name, int age)
            {
                this.Id = id;
                this.Name = name;
                this.Age = age;
            }
    
            public int Id
            {
                get;
                set;
            }
    
            public string Name
            {
                get;
                set;
            }
    
            public int Age
            {
                get;
                set;
            }
        }
  • 相关阅读:
    poj 2485 Highways 最小生成树
    hdu 3415 Max Sum of MaxKsubsequence
    poj 3026 Borg Maze
    poj 2823 Sliding Window 单调队列
    poj 1258 AgriNet
    hdu 1045 Fire Net (二分图匹配)
    poj 1789 Truck History MST(最小生成树)
    fafu 1181 割点
    减肥瘦身健康秘方
    人生的问题
  • 原文地址:https://www.cnblogs.com/feng-NET/p/4542324.html
Copyright © 2011-2022 走看看