Поделиться через


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 метод должен просматривать список прямых дочерних узлов в родительском контейнере. Поэтому использование этого метода может повлиять на производительность.

Применяется к

См. также раздел