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

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

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

代码示例:

    class Program
{
static void Main(string[] args)
{
People p1 = new People(, "刘备", );
People p2 = new People(, "关羽", );
People p3 = new People(, "张飞", );
List<People> listP1 = new List<People>();
listP1.Add(p1);
listP1.Add(p2);
listP1.Add(p3); People p4 = new People(, "赵云", );
People p5 = new People(, "黄忠", );
People p6 = new People(, "马超", );
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;
}
}
 
 
 
0
0
 
(请您对文章做出评价)
 

IEqualityComparer<T>接口的更多相关文章

  1. 用泛型的IEqualityComparer<T>接口去重复项

    提供者:porschev 题目:下列数据放在一个List中,当ID和Name都相同时,去掉重复数据 ID Name 1  张三 1  李三 1  小伟 1  李三  2  李四 2  李武 ----- ...

  2. IComparer<T> 接口Linq比较接口

    IComparer<T>比较两个对象并返回一个值,指示一个对象是小于.等于还是大于另一个对象. 在Linq当中,很多扩展方法接受一个实现IComparer<T>接口的实例的对象 ...

  3. C# - 常用接口

    常用接口 用于比较接口 IComparable<T> 接口内部定义了用于比较两个对象大小的CompareTo(T t)方法,>参数时返回1,=参数时返回0,<参数时返回-1.集 ...

  4. C#编程(四十七)----------集合接口和类型

    原文链接: http://blog.csdn.net/shanyongxu/article/details/47005979 集合接口和类型 前面介绍了数组和Array类实现的接口.数组的大小是固定的 ...

  5. C# IEqualityComparer 使用方法 Linq Distinct使用方法

    创建 IEqualityComparer的接口类必须实现Equals和GetHashCode方法 public class TipComparer : IEqualityComparer<Tip ...

  6. C#基础:LINQ 查询函数整理

    1.LINQ 函数   1.1.查询结果过滤 :where() Enumerable.Where() 是LINQ 中使用最多的函数,大多数都要针对集合对象进行过滤,因此Where()在LINQ 的操作 ...

  7. contains 方法

    不管在c#中还是java中,很多类型都有contains方法.它的原理是什么? 看一个java的例子 http://blog.csdn.net/fwwdn/article/details/674684 ...

  8. [小北De编程手记] : Lesson 05 玩转 xUnit.Net 之 从Assert谈UT框架实践

    这一篇,本文会介绍一下基本的断言概念,但重点会放在企业级单元测试的相关功能上面.下面来跟大家分享一下xUnit.Net的断言,主要涉及到以下内容: 关于断言的概念 xUnit.Net常用的断言 关于单 ...

  9. c# 扩展方法奇思妙用基础篇八:Distinct 扩展(转载)

    转载地址:http://www.cnblogs.com/ldp615/archive/2011/08/01/distinct-entension.html 刚看了篇文章 <Linq的Distin ...

随机推荐

  1. POJ_3009——冰球,IDS迭代加深搜索

    Description On Planet MM-21, after their Olympic games this year, curling is getting popular. But th ...

  2. 关于XMLEncoder和XMLDecoder

    我们用XMLEncoder和XMLDecoder来序列化和反序列化一个类. 我觉得需要注意的是,我们在new一个对象的时候,XMLEncoder本身默认的是类中无参的构造函数,我今儿在实现的时候,老是 ...

  3. Java学习之List接口

    List接口 List接口的定义如下: public interface List<E>extends Collection<E> 可以发现List接口时Collection接 ...

  4. android后台截屏实现(1)--源码编译

    前段时间接到任务要实现后台截图并上传的功能,在网上查了好久,发现遇到这类问题的人还不少.经过一番对比后发现还是修改并编译源码中的screencap类然后通过JNI来调用这种方法比较可靠,而其他的在ja ...

  5. [shell]Shell经常使用特殊符号

    符合 含义 && command1 && command2:命令1返回真(命令返回值 $? == 0)后,命令2才干被运行.能够用于if推断. cp 1.txt ../ ...

  6. iphone开发中数据持久化之——嵌入式SQLite(三)

    前两篇分别讨论了使用属性列表的数据持久化.使用对象归档的数据持久化,本文将讨论第三个实现数据持久化的方法---嵌入式SQL数据库SQLite3.SQLite3在存储和检索大量数据方面非常有效.它还能够 ...

  7. SPOJ 416 - Divisibility by 15(贪心)

    糟烂的代码啊...  这个题目思路很简单——末位只可能为0和5,所有数字的和肯定被3整除 没有0和5的肯定不行 否则,把所有数字求和 如果被3整除,则从大到小输出 如果除3余1,则按以下顺序——删1: ...

  8. 【转载】Python编程中常用的12种基础知识总结

    Python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时间对象操作,命令行参数解析(getopt),print 格式化输出,进 ...

  9. 1.引入必要的文件 2.加载 UI 组件的方式 4.Parser 解析器

    //引入 jQuery 核心库,这里采用的是 2.0 <scripttype="text/javascript"src="easyui/jquery.min.js& ...

  10. html hack 列表

    <!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]--> <!--[if IE]> 所有的IE可识别 <![ ...