当前位置:  开发笔记 > 编程语言 > 正文

C#使用两个不同的相等比较器

如何解决《C#使用两个不同的相等比较器》经验,为你挑选了1个好方法。

我需要为业务对象编写第二个相等比较器.它是一种专门的等式比较器,仅适用于某些情况.我不想重写Equal(),因为我们的持久层使用它来内部比较对象以供自己使用.让我举个例子:

public class Product : BusinessObjectBase
{
    string Name  {get;set;}
    string Desc  {get;set;}
    double Price {get;set;}
} 

由于我们在数据访问层中将这三个属性标记为持久数据属性,因此BusinessObjectBase中的Equals()会比较这些属性.现在,在一个特定的例子中,我想检查产品A是否等于产品B只是名称.我不想在检查上硬编码实际属性,因为此属性可能会在以后更改.

虽然可以在这里使用IComparer,但是基于MSDN上的描述,IComparer应该用于不等同于项目,而是对它们进行排序,因此这似乎不是100%正确的答案.我想使用.NET已有的东西,而不是创建另一个接口.做这个的最好方式是什么?

谢谢



1> SLaks..:

你在找IEqualityComparer.

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有