Re[6]: LINQ Except и Intersect: поделитесь исходниками в избранное  новое ответить всё   подписка   модер. 
От: samiushttp://sams-tricks.blogspot.com
Дата: 02.09.10 16:54
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, samius, Вы писали:


S>>В чем проблема найти элементы, которые нужно удалить и удалить их в цикле, а потом найти что добавить и добавить их в цикле?


А>я тут
Автор:
Дата: 02.09.10
и ниже уровнем
Автор:
Дата: 02.09.10
описал более подробно задачу


А>а не нравятся лишние "проходы" в цикле (по второй ссылке)

Чем? Позиций в списке миллион?

В первом варианте можно использовать Where для получения лишних элементов списка. Можно сделать красиво, но это будет 2 прохода (что не есть плохо).

Второй вариант: пробег по массиву внутри второго цикла заменить на HashSet.

Можно так:
1) из values получить HashSet.
2) проходя по элементам листбокса удаляем их Tag-и их из HashSet-а методом Remove и внимательно смотрим на результат. Если false — удаляем элемент из лисбокса.
3) для оставшихся элементов в HashSet добавляем элементы листбокса.