linq Distinct 自定义去重字段

Posted hyf69

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linq Distinct 自定义去重字段相关的知识,希望对你有一定的参考价值。

一、定义

1、Falcon_PumpX_Equal_Comparer :类名,随便取名

2、IEqualityComparer:必须继承这个接口

3、Falcon_PumpX:需要去重的对象

4、IEqualityComparer、GetHashCode  是接口必须实现的方法

private class Falcon_PumpX_Equal_Comparer : IEqualityComparer<Falcon_PumpX>
{
      bool IEqualityComparer<Falcon_PumpX>.Equals(Falcon_PumpX x, Falcon_PumpX y)
     {
           return x.Part_No.Trim() == y.Part_No.Trim() && x.Serial_No.Trim() == y.Serial_No.Trim();
     }

     public int GetHashCode(Falcon_PumpX obj)
     {
          return obj.Serial_No.Length;
     }
}

二、使用方法

Falcon_PumpX_Equal_Comparer com = new Falcon_PumpX_Equal_Comparer();

var   list = ((Param_QM_Lab_CheckResult_Imp)Param).Falcon_Pump_List.Distinct(com);

 










以上是关于linq Distinct 自定义去重字段的主要内容,如果未能解决你的问题,请参考以下文章

常用的去重和排序

List去重

C#LINQ Group通过自定义属性的多个字段

如果跟随 Skip(..) LINQ 部分,则 XML 字段上的自定义 SQLFunctionTemplate 会导致转义错误

推荐学习,C#去重Distinct的技巧!

C#黔驴技巧之去重(Distinct)