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 것이 좋습니다. 이 메서드는 노드를 목록에 복사한 다음 목록을 반복하여 노드를 제거합니다.
이 메서드는 및 이벤트를 발생 Changed 시킬 Changing 것입니다.
는 XContainer 자식 노드를 개체의 XNode Singly 연결 목록으로 저장합니다. 즉, 메서드는 Remove 부모 컨테이너 아래의 직접 자식 노드 목록을 트래버스해야 합니다. 따라서 이 메서드를 사용하면 성능에 영향을 줄 수 있습니다.
적용 대상
추가 정보
.NET