C#의 Contains() 메서드를 사용하면 LinkedList에 특정 노드(값)가 존재하는지 손쉽게 확인할 수 있습니다. 이 메서드는 해당 요소가 리스트에 있으면 True, 없으면 False를 반환합니다.
LinkedList 선언하기
먼저 학생 이름으로 구성된 LinkedList를 만들어 보겠습니다.
string[] students = { "Beth", "Jennifer", "Amy", "Vera" };
LinkedList<string> list = new LinkedList<string>(students);Contains() 메서드로 노드 확인하기
이제 리스트에 "Amy"라는 노드가 있는지 확인하려면 다음과 같이 Contains() 메서드를 호출하면 됩니다.
list.Contains("Amy")"Amy"가 리스트에 존재하므로 이 코드는 Boolean 값인 True를 반환합니다.
전체 예제 코드
아래 예제에서는 LinkedList를 생성하고 새로운 노드를 추가한 뒤, Contains() 메서드로 특정 노드의 존재 여부를 확인하는 전체 과정을 살펴볼 수 있습니다.
using System;
using System.Collections.Generic;
class Demo {
static void Main() {
string[] students = { "Beth", "Jennifer", "Amy", "Vera" };
LinkedList<string> list = new LinkedList<string>(students);
// 초기 리스트 출력
foreach (var stu in list) {
Console.WriteLine(stu);
}
// 리스트 끝에 새 노드 추가
var newNode = list.AddLast("Emma");
// 위에서 추가한 노드 뒤에 새 노드 삽입
list.AddAfter(newNode, "Matt");
Console.WriteLine("새 노드 추가 후 LinkedList...");
foreach (var stu in list) {
Console.WriteLine(stu);
}
Console.WriteLine("리스트에 Amy(노드)가 있습니까?: " + list.Contains("Amy"));
Console.WriteLine("리스트에 Anne(노드)이 있습니까?: " + list.Contains("Anne"));
}
}실행 결과
Beth Jennifer Amy Vera 새 노드 추가 후 LinkedList... Beth Jennifer Amy Vera Emma Matt 리스트에 Amy(노드)가 있습니까?: True 리스트에 Anne(노드)이 있습니까?: False
핵심 정리
- AddLast(): 리스트의 마지막에 새 노드를 추가합니다.
- AddAfter(): 지정한 기존 노드 바로 뒤에 새 노드를 삽입합니다.
- Contains(): 리스트에 특정 값이 존재하는지 검사하여 Boolean 값을 반환합니다.
위 실행 결과에서 볼 수 있듯이, 리스트에 실제로 존재하는 "Amy"는 True를 반환하지만 존재하지 않는 "Anne"은 False를 반환합니다. 이처럼 Contains() 메서드는 LinkedList뿐만 아니라 List, HashSet 등 대부분의 컬렉션 타입에서도 동일하게 활용할 수 있습니다.