| Re[6]: LINQ Except и Intersect: поделитесь исходниками | |
| От: | samius | ||
| Дата: | 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 добавляем элементы листбокса. |