Краткий смысл: Идут по XDocument в цикле, проверяю условие и если оно истинно, то удаляю узел:
bool flag = false;
var xDoc = XDocument.Parse(kvp.Value);
var childs = xDoc.Root.Elements().ToList();
for (int i = 0; i < childs.Count-1; i++)
{
if (childs[i].Attribute("id") == null) continue;
if (!dict1.ContainsKey(int.Parse(childs[i].Attribute("id").Value)))
{
flag = true;
childs[i].Remove();
i--;
}
}
Ловлю такую ошибку на попытке удаления:
Additional information: Родительский элемент отсутствует.
Вам не нужно менять индекс, ведь вы не изменяете материализованную коллекцию childs.
Попробуйте так:
for (int i = 0; i < childs.Count; i++)
{
if (childs[i].Attribute("id") == null) continue;
if (!dict1.ContainsKey(int.Parse(childs[i].Attribute("id").Value)))
{
flag = true;
childs[i].Remove();
}
}
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости