2013-07-19 5 views

ответ

2

Если оба списка содержит сопоставимые объекты, то это будет делать работу:

var newlist = list1.Except(list2); 

иначе вам может понадобиться использовать пользовательские IEqualityComparer, чтобы получить желаемые результаты :

var newlist = list1.Except(list2, new YourCustomComparer()); 
+0

yup, мои оба списка являются сопоставимыми объектами. used 'var newlist = list1.Except (list2);' но возвращает все элементы из списка1 – Rohaan

+0

Если ваши списки содержат объекты (назовем их 'class A') в обоих, и вы их сравниваете, тогда' Except' удалит те объекты из результата, которые указаны в обоих списках. Но если ссылка на объекты отличается, и вы хотите проверить, есть ли в обоих объектах с 'A.id' = 1, тогда вы должны написать свой собственный компаратор. – gzaxx

+1

получил решение 'list1.Where (t =>! List2.Select (r => r.COUNTRY_CD) .Contains (t.COUNTRY_CD)). ToList()' – Rohaan

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