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;
            }
        }
  • 相关阅读:
    iphoneX 兼容
    app 判断网络状态
    app 版本升级
    express 安装
    app打开QQ与陌生人聊天
    app项目中几个常用的cordvoa插件
    axios请求拦截器和相应拦截器
    vue中MD5+base64加密
    想啥写啥
    react canvas圆环动态百分比
  • 原文地址:https://www.cnblogs.com/feng-NET/p/4542324.html
Copyright © 2011-2022 走看看