Как удалить дубли в разных списках?

  • Автор темы Автор темы backoff
  • Дата начала Дата начала

backoff

Client
Регистрация
20.04.2015
Сообщения
6 362
Реакции
6 661
Баллы
113
Задача.

Есть список А и список Б

Список А имеет:
1
2
3
4
5

Список Б имеет:
123
321
22
33
1
52
2
43
3
334
4
5

Нужно из списка Б удалить все строки, которые есть в списке А

Как?
 
если список Б именно нужен будет очищенный то в цикле взяв строку из списка А, если из двух списков один нужен, то объедени и удали дубли
 
В итоге список А не нужен, можно его удалить, мне надо именно чтобы значения списка А были удалены в списке Б ...
Если делать циклом, это просто уйма времени уйдет... в данном случае 35к строк
 
в списке А могут быть значения которых нет в Б ?
 
нет, список А создается из списка Б по сути...
Например сайты по которым уже есть действия, но шаблон доработан, и надо пройтись еще раз, НО не по сайтам которые уже были, это и есть список А
 
ну тогда объедени и удали те значения которые повторяются больше одного раза через linq, код на форуме где то есть
 
C#:
Развернуть Свернуть Копировать
var listA = project.Lists["listA"];
var listB = project.Lists["listB"];

var listC = listA.Concat(listB);

var buff = (from q in listC group q by q into l
    where l.Count() == 1 select l.Key).ToList();
   
listB.Clear();
listB.AddRange(buff);
 
  • Оценить
Реакции: backoff
ты там только паузу поставь между последними дмумя строками, так как строк много может ничего не записаться
 
все ок, проверил, работает, за мгновение все удаляет! (тот способ, на который ссылку дал)
спс
зная linq шаблон в во много разы можно уменьшить потребления всего
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)