2015-10-20 4 views
0

У меня есть список объектов, называемых входной ...Разница между два массивом объектов в C#

я беру этот список и фильтровать его, чтобы получить еще один список объектов Output.

Я хочу, чтобы проверить, если список Output имеет каких-либо изменений по сравнению с входной список ..

Оба списка одного и того же типа

+0

Так в основном вы хотите знать, если фильтр соответствует что-нибудь? – Jon

+0

, пожалуйста, поделитесь нами с некоторыми из вашего кода, спасибо – YdB

+0

Есть ли только два списка? – sambomartin

ответ

0
var nonintersect = modifiedList.Except(originalList); 

и вам нужно реализовать компаратор по IsActive поле

0

Вы можете использовать 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

Смежные вопросы