Я пытаюсь удалить абзац (я использую некоторый текст-заполнитель для генерации из файла, подобного шаблону docx) из файла .docx с помощью OpenXML, но всякий раз, когда я удаляю абзац, он прерывает цикл foreach, который я использую для итерации.
MainDocumentPart mainpart = doc.MainDocumentPart;
IEnumerable<OpenXmlElement> elems = mainPart.Document.Body.Descendants();
foreach(OpenXmlElement elem in elems){
if(elem is Text && elem.InnerText == "##MY_PLACE_HOLDER##")
{
Run run = (Run)elem.Parent;
Paragraph p = (Paragraph)run.Parent;
p.RemoveAllChildren();
p.Remove();
}
}
Это работает, удаляет местозаполнитель и абзац, в котором он находится, но цикл foreach перестает повторяться. И мне нужно больше вещей, чтобы сделать в моем цикле foreach.
Это нормальныйспособ удалить абзац в C# с помощью OpenXML и почему мой цикл foreach останавливается или как сделать так, чтобы он не останавливался? Спасибо.