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

C#에서 List에 특정 요소가 포함되어 있는지 확인하는 방법

C#에서 List<T> 컬렉션에 특정 요소가 포함되어 있는지 확인하려면 Contains() 메서드를 사용합니다. 이 메서드는 지정한 요소가 리스트 안에 존재하면 true, 존재하지 않으면 false를 반환합니다.

Contains() 메서드란?

Contains(T item)는 System.Collections.Generic 네임스페이스의 List 클래스에서 제공하는 메서드로, 기본 비교자(EqualityComparer)를 사용하여 요소의 동일 여부를 판단합니다. 문자열뿐만 아니라 정수 등 다양한 타입의 리스트에 모두 사용할 수 있습니다.

예제 1: 문자열 리스트에서 특정 요소 확인하기

다음 예제에서는 두 개의 문자열 리스트를 생성하고, Contains() 메서드로 특정 요소의 존재 여부를 확인합니다.

using System;
using System.Collections.Generic;

public class Demo {
   public static void Main(String[] args){
      List<string> list1 = new List<string>();
      list1.Add("One");
      list1.Add("Two");
      list1.Add("Three");
      list1.Add("Four");
      list1.Add("Five");

      Console.WriteLine("List1의 요소...");
      foreach (string res in list1){
         Console.WriteLine(res);
      }

      List<string> list2 = new List<string>();
      list2.Add("India");
      list2.Add("US");
      list2.Add("UK");
      list2.Add("Canada");
      list2.Add("Poland");
      list2.Add("Netherlands");

      Console.WriteLine("List2의 요소...");
      List<string>.Enumerator demoEnum = list2.GetEnumerator();
      while (demoEnum.MoveNext()) {
         string res = demoEnum.Current;
         Console.WriteLine(res);
      }

      Console.WriteLine("List2와 List1은 같은가? = " + list2.Equals(list1));
      Console.Write("List2에 Canada가 포함되어 있는가? = " + list2.Contains("Canada"));
   }
}

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

List1의 요소...
One
Two
Three
Four
Five
List2의 요소...
India
US
UK
Canada
Poland
Netherlands
List2와 List1은 같은가? = False
List2에 Canada가 포함되어 있는가? = True

예제 2: 정수 리스트에서 특정 요소 확인하기

이번에는 정수 타입의 리스트에서 Contains() 메서드를 사용해 보겠습니다. 리스트에 없는 값(150)을 검색하면 false가 반환되는 것을 확인할 수 있습니다.

using System;
using System.Collections.Generic;

public class Demo {
   public static void Main(String[] args){
      List<int> list = new List<int>();
      list.Add(100);
      list.Add(200);
      list.Add(300);
      list.Add(400);
      list.Add(500);
      list.Add(600);
      list.Add(700);
      list.Add(800);
      list.Add(900);
      list.Add(1000);

      Console.WriteLine("리스트의 요소...");
      foreach (int res in list){
         Console.WriteLine(res);
      }

      Console.Write("리스트에 150이 포함되어 있는가? = " + list.Contains(150));
   }
}

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

리스트의 요소...
100
200
300
400
500
600
700
800
900
1000
리스트에 150이 포함되어 있는가? = False

정리

C#의 List에서 특정 요소의 포함 여부를 확인하는 가장 간단한 방법은 Contains() 메서드를 사용하는 것입니다. 참고로 Contains()는 내부적으로 순차 검색을 수행하므로 시간 복잡도는 O(n)입니다. 따라서 대량의 데이터에서 빈번하게 검색을 수행해야 한다면 HashSet과 같은 해시 기반 컬렉션을 사용하는 것이 성능 면에서 더 유리할 수 있습니다.