XNode.Remove メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
現在のノードを親から削除します。
public:
void Remove();
public void Remove ();
member this.Remove : unit -> unit
Public Sub Remove ()
例外
親は null
になります。
例
次の例では、親からノードを削除します。
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)
この例を実行すると、次の出力が生成されます。
<Root>
<Child1>child1 content</Child1>
<Child2>child2 content</Child2>
<Child4>child4 content</Child4>
<Child5>child5 content</Child5>
</Root>
注釈
LINQ to XMLプログラミングでは、そのセット内のノードに対してクエリを実行している間は、一連のノードを操作または変更しないでください。 実際には、これは一連のノードを反復処理して削除しないことを意味します。 代わりに、拡張メソッドを使用して、それらを に List<T> 具体化する ToList 必要があります。 その後、リストを反復処理してノードを削除できます。 詳細については、「混合宣言型コード/命令型コードのバグ (LINQ to XML)」を参照してください。
または、ノードのセットを削除する場合は、 メソッドを Extensions.Remove 使用することをお勧めします。 このメソッドは、ノードをリストにコピーし、リストを反復処理してノードを削除します。
このメソッドは、 イベントと イベントをChanging発生させますChanged。
は XContainer 、その子ノードを 1 つのリンクされたオブジェクトの XNode リストとして格納します。 つまり、 メソッドは Remove 親コンテナーの下にある直接子ノードの一覧を走査する必要があります。 したがって、この方法を使用すると、パフォーマンスに影響を与える可能性があります。
適用対象
こちらもご覧ください
.NET