2016-10-25 3 views
1

я в настоящее время есть два списказахватить отсутствующее значение после сравнения 2 списка

List<string> original = new List<string>(); 
List<string> edited = new List<string>(); 


List A   List B 
------   ------ 
    1     1 
    2     2 
    3 

Я хочу, чтобы захватить и отобразить значение, которое не может быть согласован после сравнения (который 3 в приведенном выше примере)

+0

да есть ли .. вы знакомы с лямбда-выражениями, что вы что-то сделали или попробовали что-нибудь еще рядом с двумя строками кода, которые вы добавили ...? – MethodMan

+0

@MethodMan извините .. Я не очень знаком и не использую лямбда-выражения. Я думал об использовании «foreach», возможно, – Arane

+0

Можете ли вы привести пример? Неясно, хотите ли вы сравнивать значения в тех же местах в обоих списках или если оба списка содержат одни и те же значения независимо от порядка. – juharr

ответ

3
var notMatched = original.Except(edited).ToList(); 

EDIT:

Если у вас есть несколько несовпадающих значений с одинаковым значением и хотим показать дзю й раз:

var notMatched = original.Except(edited).Distinct().ToList(); 
+0

что делать, если у меня несколько несоответствующих значений? – Arane

+1

@Arane, если вы хотите, чтобы его показывали только раз, используйте Distinct(); – mybirthname

0

я не очень знакомы и в использовании лямбда-выражений. Возможно, я подумал использовать оперу.

Не требуется петля.

List<string> deletedStuff= new List<string>(); 
    deletedStuff.AddRange(original.FindAll(x => ! edited.Contains(x)).AsEnumerable()); 
Смежные вопросы