C#에서는 LinkedList 컬렉션을 사용하여 연결 리스트를 간단하게 선언할 수 있습니다. 다음과 같이 문자열 타입의 연결 리스트를 생성해 보겠습니다.
var a = new LinkedList<string>();
연결 리스트가 준비되었다면, AddLast 메서드를 사용해 요소를 추가할 수 있습니다. 이 메서드는 항상 리스트의 마지막(끝)에 새 노드를 삽입합니다.
a.AddLast("Tim");
a.AddLast("Tom");
그렇다면 이렇게 구성된 연결 리스트를 어떻게 순회(traversal)할 수 있을까요? C#에서는 foreach 문을 활용하면 매우 직관적으로 모든 요소에 접근할 수 있습니다. 아래 예제를 통해 전체 과정을 확인해 보세요.
예제 코드
using System;
using System.Collections.Generic;
public class Demo {
public static void Main(string[] args) {
var a = new LinkedList<string>();
a.AddLast("Tim");
a.AddLast("Tom");
foreach(var res in a) {
Console.WriteLine(res);
}
}
}
코드 설명
위 예제는 다음과 같은 흐름으로 동작합니다.
1. 리스트 생성 — new LinkedList<string>()으로 문자열을 저장하는 연결 리스트 인스턴스를 만듭니다.
2. 요소 추가 — AddLast를 두 번 호출하여 "Tim"과 "Tom"을 차례대로 리스트 끝에 추가합니다.
3. 순회 및 출력 — foreach 문이 리스트의 첫 번째 노드부터 마지막 노드까지 순서대로 방문하며, 각 요소를 Console.WriteLine으로 출력합니다.
실행 결과는 다음과 같습니다.
Tim Tom
이처럼 C#의 LinkedList는 내부적으로 IEnumerable을 구현하고 있기 때문에 별도의 반복자 코드 없이 foreach 문만으로 손쉽게 순회할 수 있다는 장점이 있습니다.