C#에서 LinkedList에 특정 값이 포함되어 있는지 확인하려면 Contains() 메서드를 사용하면 됩니다. Contains 메서드는 지정한 값이 LinkedList에 존재하면 true, 존재하지 않으면 false를 반환합니다.
LinkedList<T> 클래스는 System.Collections.Generic 네임스페이스에 속하며, Contains 메서드는 리스트의 처음부터 끝까지 순차적으로 요소를 검색하므로 시간 복잡도는 O(n)입니다. 따라서 요소 개수가 많을수록 확인에 더 많은 시간이 걸릴 수 있다는 점을 참고하세요.
예제 1: 정수형 LinkedList에서 값 확인
다음 예제에서는 정수형 LinkedList를 만든 후, 값 800이 포함되어 있는지 확인합니다.
using System;
using System.Collections.Generic;
public class Demo {
public static void Main() {
LinkedList<int> linkedList = new LinkedList<int>();
linkedList.AddLast(25);
linkedList.AddLast(50);
linkedList.AddLast(100);
linkedList.AddLast(200);
linkedList.AddLast(400);
linkedList.AddLast(500);
linkedList.AddLast(550);
linkedList.AddLast(600);
linkedList.AddLast(800);
linkedList.AddLast(1200);
Console.WriteLine("노드 개수 = " + linkedList.Count);
foreach(int val in linkedList) {
Console.WriteLine(val);
}
Console.WriteLine("LinkedList에 800 노드가 있습니까? " + linkedList.Contains(800));
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
노드 개수 = 10 25 50 100 200 400 500 550 600 800 1200 LinkedList에 800 노드가 있습니까? True
값 800이 LinkedList에 존재하므로 Contains 메서드가 True를 반환한 것을 확인할 수 있습니다.
예제 2: 문자열 LinkedList에서 값 확인
이번에는 문자열 LinkedList에서 존재하지 않는 값을 조회해 보겠습니다. 값 "KLM"은 리스트에 없으므로 Contains 메서드가 false를 반환합니다.
using System;
using System.Collections.Generic;
public class Demo {
public static void Main() {
LinkedList<string> linkedList = new LinkedList<string>();
linkedList.AddLast("ABC");
linkedList.AddLast("BCD");
linkedList.AddLast("CDE");
linkedList.AddLast("DEF");
linkedList.AddLast("EFG");
linkedList.AddLast("FGH");
linkedList.AddLast("GHI");
linkedList.AddLast("HIJ");
linkedList.AddLast("IJK");
Console.WriteLine("노드 개수 = " + linkedList.Count);
foreach(string val in linkedList) {
Console.WriteLine(val);
}
Console.WriteLine("LinkedList에 KLM 노드가 있습니까? " + linkedList.Contains("KLM"));
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
노드 개수 = 9 ABC BCD CDE DEF EFG FGH GHI HIJ IJK LinkedList에 KLM 노드가 있습니까? False
정리
LinkedList에 값의 포함 여부를 확인할 때는 Contains 메서드 하나면 충분합니다. 값이 존재하면 true, 존재하지 않으면 false를 반환하므로, 조건문과 함께 사용하면 손쉽게 원하는 로직을 구현할 수 있습니다. 다만 순차 검색 방식이기 때문에 대량의 데이터에서 빈번한 조회가 필요하다면 HashSet<T>처럼 해시 기반 컬렉션을 사용하는 것이 성능 면에서 더 유리할 수 있습니다.