Суть в чем, строя запрос на коллекцию элементов, в процессе перебора, какие-то элементы исключаем из коллекции.
Далее необходимы пути до оставшихся, если это делать в for/foreach, еще можно сохранить итерацию, но с Linq или Parallel/ForAll и пр. невозможно.
Вот если бы было свойство xPath, то...