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()를, 더 이상 필요 없다면 객체 참조를 해제하여 가비지 컬렉션이 메모리를 회수하도록 하는 것이 좋습니다.