Skip to content

Instantly share code, notes, and snippets.

@gardym
Created October 18, 2011 05:32
Show Gist options
  • Save gardym/1294682 to your computer and use it in GitHub Desktop.
Save gardym/1294682 to your computer and use it in GitHub Desktop.
.NET Linq Extension: Use a lambda for Distinct() quality comparison
public static class IEnumerableExtensions
{
public static IEnumerable<T> Distinct<T>(this IEnumerable<T> enumerable, Func<T, T, bool> comparison)
{
return enumerable.Distinct(new LambdaEqualityComparison<T>(comparison));
}
internal class LambdaEqualityComparison<T> : IEqualityComparer<T>
{
private readonly Func<T, T, bool> comparison;
public LambdaEqualityComparison(Func<T, T, bool> comparison)
{
this.comparison = comparison;
}
public bool Equals(T x, T y)
{
return comparison.Invoke(x, y);
}
public int GetHashCode(T obj)
{
return 1;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment