1. 程式人生 > >linq Distinct 自定義去重欄位

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);