When I was working on a project today, I had a List of objects where I needed to grab objects that had a distinct property value (i.e. where MyObject.MyID is distinct).
I discovered the Distinct() method on the List and I had never used it before so I wasn’t sure of the syntax. After further review, I learned you can use the IEqualityComparer interface to specify how to determine if the object is distinct.
I’ll just show you the code because I feel it’s self explanatory:
public class MyObjectMyIDComparer : IEqualityComparer
{
public bool Equals(MyObject x, MyObject y)
{
return x.MyID == y.MyID;
}
public int GetHashCode(MyObject obj)
{
return obj.ToString().GetHashCode();
}
}
Now you can call the Distinct() method and pass in the class:
List MyObjectDistinctMyIDList = MyObjectList.Distinct(new MyObjectMyIDComparer()).ToList();
Leave a Reply