XNode.Remove Método

Definição

Remove este nó de seu pai.Removes this node from its parent.

public:
 void Remove();
public void Remove ();
member this.Remove : unit -> unit
Public Sub Remove ()

Exceções

O pai é null.The parent is null.

Exemplos

O exemplo a seguir remove um nó de seu pai.The following example removes a node from its parent.

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)  

Esse exemplo gera a saída a seguir:This example produces the following output:

<Root>  
  <Child1>child1 content</Child1>  
  <Child2>child2 content</Child2>  
  <Child4>child4 content</Child4>  
  <Child5>child5 content</Child5>  
</Root>  

Comentários

Em LINQ to XML programação, você não deve manipular ou modificar um conjunto de nós enquanto estiver consultando nós nesse conjunto.In LINQ to XML programming, you should not manipulate or modify a set of nodes while you are querying for nodes in that set. Em termos práticos, isso significa que você não deve iterar em um conjunto de nós e removê-los.In practical terms, this means that you should not iterate over a set of nodes and remove them. Em vez disso, você deve materializa-los em um List<T> usando o ToList método de extensão.Instead, you should materialize them into a List<T> by using the ToList extension method. Em seguida, você pode iterar na lista para remover os nós.Then, you can iterate over the list to remove the nodes. Para obter mais informações, consulte código declarativo misto/bugs de código imperativo (LINQ to XML).For more information, see Mixed Declarative Code/Imperative Code Bugs (LINQ to XML).

Como alternativa, se você quiser remover um conjunto de nós, é recomendável usar o Extensions.Remove método.Alternatively, if you want to remove a set of nodes, it is recommended that you use the Extensions.Remove method. Esse método copia os nós para uma lista e, em seguida, itera na lista para remover os nós.This method copies the nodes to a list, and then iterates over the list to remove the nodes.

Esse método irá gerar o Changed e os Changing eventos.This method will raise the Changed and the Changing events.

O XContainer armazena seus nós filho como uma lista de objetos vinculada individualmente XNode .The XContainer stores its child nodes as a singly-linked list of XNode objects. Isso significa que o Remove método deve atravessar a lista de nós filho diretos no contêiner pai.This means that the Remove method must traverse the list of direct child nodes under the parent container. Portanto, o uso desse método pode afetar o desempenho.Therefore, using this method might affect your performance.

Aplica-se a