XNode.Remove Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Удаляет этот узел из родительского элемента.
public:
void Remove();
public void Remove();
member this.Remove : unit -> unit
Public Sub Remove ()
Исключения
Родительский объект .null
Примеры
В следующем примере узел удаляется из родительского элемента.
XElement xmlTree = new XElement("Root",
new XElement("Child1", "child1 content"),
new XElement("Child2", "child2 content"),
new XElement("Child3", "child3 content"),
new XElement("Child4", "child4 content"),
new XElement("Child5", "child5 content")
);
XElement child3 = xmlTree.Element("Child3");
child3.Remove();
Console.WriteLine(xmlTree);
Dim xmlTree As XElement = _
<Root>
<Child1>child1 content</Child1>
<Child2>child2 content</Child2>
<Child3>child3 content</Child3>
<Child4>child4 content</Child4>
<Child5>child5 content</Child5>
</Root>
Dim child3 As XElement = xmlTree.<Child3>(0)
child3.Remove()
Console.WriteLine(xmlTree)
В примере получается следующий вывод.
<Root>
<Child1>child1 content</Child1>
<Child2>child2 content</Child2>
<Child4>child4 content</Child4>
<Child5>child5 content</Child5>
</Root>
Комментарии
В программировании LINQ to XML не следует управлять набором узлов или изменять их при запросе узлов в этом наборе. Практически это означает, что не следует выполнять итерацию по набору узлов и удалять их. Вместо этого следует материализовать их в объект List<T> с помощью ToList метода расширения. Затем можно выполнить итерацию по списку, чтобы удалить узлы. Дополнительные сведения см. в статье об ошибках смешанного декларативного кода и императивного кода (LINQ to XML).
Кроме того, если вы хотите удалить набор узлов, рекомендуется использовать Extensions.Remove этот метод. Этот метод копирует узлы в список, а затем выполняет итерацию по списку, чтобы удалить узлы.
Этот метод вызовет Changed события и Changing события.
Хранит XContainer дочерние узлы в виде последовательно связанного XNode списка объектов. Это означает, что Remove метод должен пройти по списку прямых дочерних узлов в родительском контейнере. Поэтому использование этого метода может повлиять на производительность.