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;
            }
        }
  • 相关阅读:
    MyEclipse编码集设置
    Tomcat内存溢出问题解决
    避免头文件多次编译
    C++指针学习(1)
    C++头文件和实现(用复数类举例)
    从helloworld开始
    标准库string类型
    浅谈Lua的Coroutine协程的多"线程"并发模型
    关于闭包函数的概念和原理
    笔记
  • 原文地址:https://www.cnblogs.com/kissdodog/p/2892463.html
Copyright © 2011-2022 走看看