Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# LinkedList 전체 삭제하기 – Clear() 메서드 완벽 가이드

C#에서 LinkedList의 모든 노드를 한 번에 제거하려면 Clear() 메서드를 사용하면 됩니다. 이 메서드는 연결 목록의 Count를 0으로 초기화하고, 목록이 참조하던 모든 요소의 연결을 끊어 메모리가 효율적으로 회수될 수 있도록 합니다.

먼저 문자열 배열을 기반으로 LinkedList를 생성하는 방법부터 살펴보겠습니다.

string[] employees = { "Patrick", "Robert", "John", "Jacob", "Jamie" };
LinkedList<string> list = new LinkedList<string>(employees);

Clear() 메서드로 목록 비우기

생성된 LinkedList의 모든 노드를 제거하려면 다음과 같이 Clear() 메서드를 호출합니다.

list.Clear();

호출 후에는 목록이 완전히 비워지므로, 이후 foreach 반복문을 실행해도 아무런 요소도 출력되지 않습니다.

전체 예제 코드

아래는 LinkedList를 생성하고, 요소를 출력한 뒤, Clear() 메서드로 목록을 비우는 과정을 보여주는 완전한 코드입니다.

using System;
using System.Collections.Generic;

class Demo {
   static void Main() {
      string[] employees = { "Patrick", "Robert", "John", "Jacob", "Jamie" };
      LinkedList<string> list = new LinkedList<string>(employees);

      // 목록 출력
      foreach (var emp in list) {
         Console.WriteLine(emp);
      }

      // 목록 비우기
      list.Clear();

      Console.WriteLine("노드가 모두 제거된 LinkedList (빈 목록)...");
      foreach (var emp in list) {
         Console.WriteLine(emp);
      }
  }
}

실행 결과

Patrick
Robert
John
Jacob
Jamie
노드가 모두 제거된 LinkedList (빈 목록)...

참고 사항

  • Clear()는 시간 복잡도 O(1)로 동작하며, 내부 노드들의 참조만 해제하므로 매우 빠릅니다.
  • 메서드 호출 후 Count 속성은 0이 되지만, LinkedList 객체 자체는 그대로 재사용할 수 있습니다.
  • 목록이 비어 있어도 First, Last 속성은 null을 반환하므로 접근 전에 상태 확인이 필요할 수 있습니다.