Я рекомендовал бы создать ключ во время выполнения, если это возможно. Таким образом, если ключ нужно было предчувствовать во время конкретной сессии, когда-то сессии, заканчивается, ключ будет бесполезен. Они могли все еще предчувствовать ключ из памяти, если бы они достаточно умны, но он не имел бы значения, так как ключ стал бы недопустимым после промежутка времени.
Я подозреваю, что Linq может помочь вам в следующем.
using System.Linq;
void foo()
{
items.Elements("x")
.Where(x => condition(webservice.method(x)))
.Remove();
}
Если это не сработает (т. Е. Внутренний счетчик все еще недействителен), сделайте мелкую копию выбранные элементы и удалите их следующим образом.
using System.Linq;
void foo()
{
List xElements = items.Elements("x")
.Where(x => condition(webservice.method(x)))
.ToList();
for (int i = xElements.Count - 1; i > -1; i--)
{
xElements[i].Remove();
}
}
Создайте коллекцию перед логикой цикла, добавьте удаляемые элементы в новую коллекцию, затем вызовите items.Remove для каждого элемента в новой коллекции.