XNode.Remove XNode.Remove XNode.Remove XNode.Remove Method


現在のノードを親から削除します。Removes this node from its parent.

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


次の例では、その親からノードを削除します。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");  
Dim xmlTree As XElement = _   
            <Child1>child1 content</Child1>  
            <Child2>child2 content</Child2>  
            <Child3>child3 content</Child3>  
            <Child4>child4 content</Child4>  
            <Child5>child5 content</Child5>  

Dim child3 As XElement = xmlTree.<Child3>(0)  

この例を実行すると、次の出力が生成されます。This example produces the following output:

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


LINQ to XMLLINQ to XMLプログラミングでは、する必要がありますいない操作またはそのセット内のノードのクエリを実行するときに、一連のノードを変更します。In LINQ to XMLLINQ to XML programming, you should not manipulate or modify a set of nodes while you are querying for nodes in that set. 実際には、つまりする必要がありますいない一連のノードを反復処理、それらを削除します。In practical terms, this means that you should not iterate over a set of nodes and remove them. 代わりを具体化する必要があります、List<T>を使用して、ToList拡張メソッド。Instead, you should materialize them into a List<T> by using the ToList extension method. 次に、ノードを削除するリストを反復処理することができます。Then, you can iterate over the list to remove the nodes. 詳細については、次を参照してください。混合宣言型コードと命令型コード バグ (LINQ to XML)します。For more information, see Mixed Declarative Code/Imperative Code Bugs (LINQ to XML).

また、一連のノードを削除する場合は、お勧めを使用すること、Extensions.Removeメソッド。Alternatively, if you want to remove a set of nodes, it is recommended that you use the Extensions.Remove method. このメソッドは、リストにノードをコピーし、ノードが削除されるリストを反復処理し。This method copies the nodes to a list, and then iterates over the list to remove the nodes.

このメソッドが発生、ChangedChangingイベント。This method will raise the Changed and the Changing events.

XContainerのシングル リンク リストとしてその子ノードを格納XNodeオブジェクト。The XContainer stores its child nodes as a singly-linked list of XNode objects. つまり、Removeメソッドが親コンテナーの下の直接の子ノードのリストを走査する必要があります。This means that the Remove method must traverse the list of direct child nodes under the parent container. そのため、このメソッドを使用すると、パフォーマンスに影響する可能性があります。Therefore, using this method might affect your performance.