2014-10-21 3 views
1

у меня есть 2 списка массивов, как это:список сравнения массивов и удалить дубликаты

var list1 = new List.<String>(); 
var list2 = new List.<String>(); 

Теперь я хочу, чтобы сравнить эти 2 и удалить из list1, если же существует в list2, но просто не могу понять, как ?!?

Я строил это в Единстве.

Пожалуйста, помогите. Я обыскал сеть, но не нашел ничего, что могло бы помочь, и я потерялся.

любая помощь и заранее спасибо :-)

ответ

0

Может быть, вы можете пересекать оба списка так:

list1 = list1.Intersect(list2).ToList(); 
+0

Не работает в единстве и, кроме того ... Я не хочу добавлять их вместе, я просто хочу удалить из списка1, если он существует в списке2. – Mansa

0

Извините за C# синтаксис, я уверен, что вы можете перевести это хотя , Я бы использовал цикл foreach, чтобы сначала собрать дубликаты, а затем еще один, чтобы удалить их все. Причина этого в два шага состоит в том, что вы не можете изменять список во время его итерации.

List<string> duplicates = new List<string>; 
foreach (string s in list1) 
{ 
    if (list2.Contains(s)) duplicates.Add(s); 
} 
foreach (string s in duplicates) 
{ 
    list1.Remove(s); 
} 
Смежные вопросы