using System; using System.Collections.Generic; namespace Kreta.Ellenorzo.BL.VN.Helpers { public class LambdaComparer : IEqualityComparer { private readonly Func _lambdaComparer; private readonly Func _lambdaHash; public LambdaComparer(Func lambdaComparer) : this(lambdaComparer, o => 0) { } public LambdaComparer(Func lambdaComparer, Func lambdaHash) { _lambdaComparer = lambdaComparer ?? throw new ArgumentNullException(nameof(lambdaComparer)); _lambdaHash = lambdaHash ?? throw new ArgumentNullException(nameof(lambdaHash)); } public bool Equals(T x, T y) => _lambdaComparer(x, y); public int GetHashCode(T obj) => _lambdaHash(obj); } }