В итоге список А не нужен, можно его удалить, мне надо именно чтобы значения списка А были удалены в списке Б ...
Если делать циклом, это просто уйма времени уйдет... в данном случае 35к строк
нет, список А создается из списка Б по сути...
Например сайты по которым уже есть действия, но шаблон доработан, и надо пройтись еще раз, НО не по сайтам которые уже были, это и есть список А
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);