Partilhar via


XNode.Remove Método

Definição

Remove este nó de seu pai.

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

Exceções

O pai é null.

Exemplos

O exemplo a seguir remove um nó de seu pai.

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:

<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. Em termos práticos, isso significa que você não deve iterar em um conjunto de nós e removê-los. Em vez disso, você deve materializá-los em um List<T> usando o ToList método de extensão . Em seguida, você pode iterar na lista para remover os nós. Para obter mais informações, consulte Código Declarativo Misto/Bugs de Código Imperativo (LINQ to XML).

Como alternativa, se você quiser remover um conjunto de nós, é recomendável usar o Extensions.Remove método . Esse método copia os nós para uma lista e itera sobre a lista para remover os nós.

Esse método gerará os ChangedChanging eventos e .

O XContainer armazena seus nós filho como uma lista vinculada de XNode objetos. Isso significa que o Remove método deve percorrer a lista de nós filho diretos no contêiner pai. Portanto, o uso desse método pode afetar seu desempenho.

Aplica-se a

Confira também