XNode.Remove 메서드

정의

부모에서 이 노드를 제거합니다.Removes this node from its parent.

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

예외

부모 노드가 null인 경우The parent is null.

예제

다음 예제에서는 부모 노드에서 해당 노드를 제거합니다.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)  

이 예제는 다음과 같은 출력을 생성합니다.This example produces the following output:

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

설명

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.

이 메서드를 발생 시킵니다 합니다 Changed 하며 Changing 이벤트입니다.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.

적용 대상

추가 정보