XNode.Remove Método

Definición

Quita este nodo de su elemento primario.

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

Excepciones

El valor del elemento primario es null.

Ejemplos

En el ejemplo siguiente se quita un nodo de su elemento primario.

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)  

Este ejemplo produce el siguiente resultado:

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

Comentarios

En LINQ to XML programación, no debe manipular ni modificar un conjunto de nodos mientras consulta los nodos de ese conjunto. En términos prácticos, esto significa que no debe iterar por un conjunto de nodos y quitarlos. En su lugar, debe materializarlos en mediante List<T> el método de ToList extensión . A continuación, puede iterar por la lista para quitar los nodos. Para obtener más información, vea Errores de código declarativo/código imperativo mixto (LINQ to XML).

Como alternativa, si desea quitar un conjunto de nodos, se recomienda usar el Extensions.Remove método . Este método copia los nodos en una lista y, a continuación, recorre en iteración la lista para quitar los nodos.

Este método generará los Changed eventos y Changing .

XContainer almacena sus nodos secundarios como una lista vinculada de forma singly de XNode objetos. Esto significa que el Remove método debe atravesar la lista de nodos secundarios directos bajo el contenedor primario. Por lo tanto, el uso de este método podría afectar al rendimiento.

Se aplica a

Consulte también