2015-04-16 4 views
-1

У меня есть массив, как:Как получить массив удаленных и добавленных элементов?

var list1 = string[] {"1", "2", "3", "4", "5"}; 

затем изменить его на:

var list2 = string[] {"1", "2", "3", "4", "6" ,"9"}; 

Я стараюсь по list1.Except(list2);, но это возвращает только различные элементы Как я могу узнать, какой элемент будет удален, и которые элемент добавляется в массив.

+0

@Artemix Я знаю, что это всего лишь пример. – Mike

+1

Ничего не было добавлено или удалено. Вы создали новый массив, и теперь вы хотите сравнить их. Что * * вы хотите найти? Кроме того, что они не возвращают различия, он возвращает «удаленные» элементы - то есть те, которые существуют в списке1, но не в списке2. Отмените аргументы, и вы получите «добавленные» –

ответ

8

Просто переверните Except:

var list1 = new string[] {"1", "2", "3", "4", "5"}; 
var list2 = new string[] {"1", "2", "3", "4", "6" ,"9"}; 

var added = list2.Except(list1); 
var deleted = list1.Except(list2); 
1

Вы можете использовать наборы (например: HashSet)

Он содержит элементы, как:

  • Intesections
  • Союзов
  • Symetric За исключением
  • Кроме
  • IsSubsetOf
  • IsSuperSetOf
  • Перекрытия и т.д ...