Вы можете использовать IEquality Comparer
для этого
Это родовая реализация IEquality
public class GenericEqualityComparer<T> : IEqualityComparer<T>
{
private Func<T, T, bool> _equalsFunction;
private Func<T, int> _hashCodeFunction;
public GenericEqualityComparer(Func<T, T, bool> equalsFunction, Func<T, int> hashCodeFunction)
{
if (equalsFunction == null) throw new ArgumentException();
if (hashCodeFunction == null) throw new ArgumentException();
_equalsFunction = equalsFunction;
_hashCodeFunction = hashCodeFunction;
}
public bool Equals(T x, T y)
{
return _equalsFunction(x, y);
}
public int GetHashCode(T obj)
{
return _hashCodeFunction(obj);
}
}
Пример использования
var difference = List1.Except(list2, new GenericEqualityComparer<Product>((x, y) => x.IsActive== y.IsActive && y.Id== y.Id, x => x.ID.GetHashCode()));
Посмотрите на msdn
Так в основном вы хотите знать, если фильтр соответствует что-нибудь? – Jon
, пожалуйста, поделитесь нами с некоторыми из вашего кода, спасибо – YdB
Есть ли только два списка? – sambomartin