开发者

C# Remove duplicate logic

开发者 https://www.devze.com 2023-03-05 19:36 出处:网络
I have a List like this, COL1COL2COL3 ------------- AAABSome text AAACSome text AAABSome text ABABSome text

I have a List like this,

COL1  COL2  COL3
    ----  ----  -----
    AA    AB    Some text  
    AA    AC    Some text
    AA    AB    Some text
    AB    AB    Some text
    AB    AC    Some text
    AA开发者_JAVA百科    AC    Some text

I am looking for a fast and efficient logic in C# (perhaps in + LINQ) to remove duplicates in these two columns (COL1 , COL2 ) (Same like remove duplicates in Excel)

End result should be

AA  AB Some text
AA  AC Some text
AB  AB Some text
AB  AC Some text

Please advice


Use suggestion given by @Zerkms. For example, assuming your object type is MyRow:

public class MyRowComparer : IEqualityComparer<MyRow>
{
   public override bool Equals(MyRow r1, MyRow r2)
   {
      // adjust the logic as per your need e.g. case-insensitive etc
      return r1.Col1 == r2.Col1 && r1.Col2 == r2.Col2;
   }

   public override int GetHashCode(MyRow r)
   {
      // TODO: add null check etc
      return r.Col1.GetHashCode() ^ r.Col2.GetHashCode()
   }
}

IEnumerable<MyRow> myList = ...;
...
myList.Distinct(new MyRowComparer());


This i the solution by Distinct

var query = (from record in MyList select record).Distinct();
0

精彩评论

暂无评论...
验证码 换一张
取 消