XNode.Remove Método

Definição

Remove esse 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)

Este exemplo produz a seguinte saída:

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

Comentários

Na programação LINQ to XML, 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 na lista para remover os nós.

Esse método gerará o Changed e os Changing eventos.

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

Aplica-se a

Confira também