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

C# LinkedList에 특정 노드가 포함되어 있는지 확인하는 방법

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 등 대부분의 컬렉션 타입에서도 동일하게 활용할 수 있습니다.