XNode.Remove Metoda

Definicja

Usuwa ten węzeł z jego elementu nadrzędnego.Removes this node from its parent.

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

Wyjątki

Element nadrzędny to null.The parent is null.

Przykłady

Poniższy przykład usuwa węzeł z jego elementu nadrzędnego.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)  

Ten przykład generuje następujące wyniki:This example produces the following output:

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

Uwagi

W LINQ do XMLLINQ to XML programowaniu nie należy manipulować ani modyfikować zestawu węzłów podczas wykonywania zapytań dotyczących węzłów w tym zestawie.In LINQ do XMLLINQ to XML programming, you should not manipulate or modify a set of nodes while you are querying for nodes in that set. W praktyce oznacza to, że nie należy wykonywać iteracji na zestawie węzłów i usuwać ich.In practical terms, this means that you should not iterate over a set of nodes and remove them. Zamiast tego należy zmaterializowania je do programu List<T> przy ToList użyciu metody rozszerzenia.Instead, you should materialize them into a List<T> by using the ToList extension method. Następnie można wykonać iterację na liście, aby usunąć węzły.Then, you can iterate over the list to remove the nodes. Aby uzyskać więcej informacji, zobacz mieszany kod deklaratywny/niezbędny kod (LINQ to XML).For more information, see Mixed Declarative Code/Imperative Code Bugs (LINQ to XML).

Alternatywnie, jeśli chcesz usunąć zestaw węzłów, zalecamy użycie Extensions.Remove metody.Alternatively, if you want to remove a set of nodes, it is recommended that you use the Extensions.Remove method. Ta metoda kopiuje węzły do listy, a następnie wykonuje iterację na liście, aby usunąć węzły.This method copies the nodes to a list, and then iterates over the list to remove the nodes.

Ta metoda spowoduje podnoszenie Changed poziomu Changing i zdarzeń.This method will raise the Changed and the Changing events.

Przechowuje węzły podrzędne jako pojedynczo połączoną XNode listę obiektów. XContainerThe XContainer stores its child nodes as a singly-linked list of XNode objects. Oznacza to, że Remove Metoda musi przejść na listę bezpośrednich węzłów podrzędnych w kontenerze nadrzędnym.This means that the Remove method must traverse the list of direct child nodes under the parent container. W związku z tym ta metoda może mieć wpływ na wydajność.Therefore, using this method might affect your performance.

Dotyczy

Zobacz też