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

C# LinkedList에서 모든 노드 한 번에 제거하는 방법 – Clear() 메서드 완벽 가이드

C#에서 LinkedList에 저장된 모든 노드를 제거하려면 Clear() 메서드를 사용하면 됩니다. 이 메서드는 LinkedList<T> 클래스에 기본으로 포함되어 있으며, 호출하는 즉시 리스트 내의 모든 요소를 삭제하고 Count 속성을 0으로 초기화합니다.

C# LinkedList Clear() 메서드란?

Clear() 메서드는 LinkedList의 모든 노드를 순차적으로 제거하는 기능을 수행합니다. 주요 특징은 다음과 같습니다.

  • 리스트의 모든 노드를 삭제하며 Count 값이 0이 됩니다.
  • 시간 복잡도는 O(n)으로, 노드 수에 비례하여 처리됩니다.
  • 메서드 호출 후에도 LinkedList 객체 자체는 계속 사용할 수 있으며, 새로운 노드를 추가할 수 있습니다.

예제 1: 정수형 LinkedList의 모든 노드 제거하기

다음 예제는 정수 배열로 초기화된 LinkedList의 모든 노드를 Clear() 메서드로 제거하는 코드입니다.

using System;
using System.Collections.Generic;

public class Demo {
   public static void Main() {
      int[] num = {10, 20, 30, 40, 50};
      LinkedList<int> list = new LinkedList<int>(num);

      Console.WriteLine("LinkedList nodes...");
      foreach (var n in list) {
         Console.WriteLine(n);
      }

      // 모든 노드 제거
      list.Clear();

      Console.WriteLine("LinkedList is empty now!");
      foreach (var n in list) {
         Console.WriteLine(n);
      }
   }
}

실행 결과

위 코드를 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.

LinkedList nodes...
10
20
30
40
50
LinkedList is empty now!

출력 결과에서 볼 수 있듯이, Clear() 호출 후에는 리스트가 비어 있어 두 번째 foreach 루프에서는 아무것도 출력되지 않습니다.

예제 2: 문자열 LinkedList의 노드 개수 변화 확인하기

이번에는 문자열 타입의 LinkedList에 여러 노드를 추가한 뒤, Clear() 메서드 호출 전후의 Count 값을 비교해 보겠습니다.

using System;
using System.Collections.Generic;

public class Demo {
   public static void Main() {
      LinkedList<String> list = new LinkedList<String>();
      list.AddLast("A");
      list.AddLast("B");
      list.AddLast("C");
      list.AddLast("D");
      list.AddLast("E");
      list.AddLast("F");
      list.AddLast("G");
      list.AddLast("H");
      list.AddLast("I");
      list.AddLast("J");

      Console.WriteLine("Count of nodes = " + list.Count);

      // 모든 노드 제거
      list.Clear();

      Console.WriteLine("Count of nodes (updated) = " + list.Count);
   }
}

실행 결과

위 코드의 실행 결과는 다음과 같습니다.

Count of nodes = 10
Count of nodes (updated) = 0

AddLast() 메서드로 10개의 노드를 추가한 후 Count 값이 10이었지만, Clear() 메서드 호출 후에는 0으로 변경된 것을 확인할 수 있습니다.

정리

C#의 LinkedList에서 모든 노드를 제거하는 가장 간단하고 효율적인 방법은 Clear() 메서드를 사용하는 것입니다. 반복문을 통해 노드를 하나씩 삭제하는 것보다 코드가 간결해지고 실수를 줄일 수 있습니다. 리스트를 재사용할 계획이라면 Clear()를, 더 이상 필요 없다면 객체 참조를 해제하여 가비지 컬렉션이 메모리를 회수하도록 하는 것이 좋습니다.