Skip to content

Class to build an IEqualityComparer<T> based on custom selectors.

Notifications You must be signed in to change notification settings

RoadieRich/MyComparer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MyComparer

Class to allow you to compare objects based on custom selectors.

Given a class Foo that you can't edit:

public class Foo
{
    public int Bar { get; set; }
    public float Baz { get; set; }
}

It lets you say

Foo foo1 = GetFoo1();
Foo foo2 = GetFoo2();

IEqualityComparer<Foo> comparer = MyComparer<Foo>.On(f => f.Bar).And(f => f.Baz);
comparer.Equals(foo1, foo2); //returns true iff Bar is equal on both objects *and* Baz is equal on both objects

Or:

List<Foo> foos = GetFoos();
var uniqueFoos = foos.ToHashset(MyComparer<Foo>.On(f => f.Bar).And(f => f.Baz));

About

Class to build an IEqualityComparer<T> based on custom selectors.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages