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

C#에서 SortedList 개체에 특정 값이 포함되어 있는지 확인하는 방법

C# SortedList 개체에 특정 값이 포함되어 있는지 확인하는 방법

C#에서 SortedList 개체에 특정 값이 들어 있는지 확인하려면 ContainsValue() 메서드를 사용하면 됩니다. 이 메서드는 지정한 값이 SortedList 안에 존재하면 true, 존재하지 않으면 false를 반환합니다.

참고로 ContainsValue()는 값을 처음부터 순서대로 검색하는 선형 탐색 방식이기 때문에, 저장된 요소가 많아질수록 확인에 걸리는 시간도 길어질 수 있습니다. 반면 키의 존재 여부를 검사하는 ContainsKey()는 정렬된 자료 구조의 장점을 활용해 상대적으로 빠르게 동작합니다.


예제 1 – 찾는 값이 존재하는 경우

다음 예제에서는 SortedList에 "Five"라는 값이 포함되어 있는지 확인해 봅니다.

using System;
using System.Collections;
public class Demo {
   public static void Main(){
      SortedList list = new SortedList();
      list.Add("1", "One");
      list.Add("2", "Two");
      list.Add("3", "Three");
      list.Add("4", "Four");
      list.Add("5", "Five");
      list.Add("6", "Six");
      list.Add("7", "Seven");
      list.Add("8", "Eight");
      Console.WriteLine("SortedList의 키와 값....");
      foreach(DictionaryEntry k in list)
      Console.WriteLine("키: {0}, 값: {1}", k.Key, k.Value);
      Console.WriteLine("SortedList에 해당 값이 있습니까? " + list.ContainsValue("Five"));
  }
}

출력 결과

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

SortedList의 키와 값....
키: 1, 값: One
키: 2, 값: Two
키: 3, 값: Three
키: 4, 값: Four
키: 5, 값: Five
키: 6, 값: Six
키: 7, 값: Seven
키: 8, 값: Eight
SortedList에 해당 값이 있습니까? True

"Five"는 SortedList에 실제로 존재하는 값이므로 ContainsValue() 메서드가 true를 반환한 것을 확인할 수 있습니다.

예제 2 – 찾는 값이 존재하지 않는 경우

이번에는 SortedList에 등록되어 있지 않은 값인 "Tenth"를 조회해 보겠습니다.

using System;
using System.Collections;
public class Demo {
   public static void Main(){
      SortedList list = new SortedList();
      list.Add("1", "One");
      list.Add("2", "Two");
      list.Add("3", "Three");
      list.Add("4", "Four");
      list.Add("5", "Five");
      list.Add("6", "Six");
      list.Add("7", "Seven");
      list.Add("8", "Eight");
      Console.WriteLine("SortedList의 키와 값....");
      foreach(DictionaryEntry k in list)
      Console.WriteLine("키: {0}, 값: {1}", k.Key, k.Value);
      Console.WriteLine("SortedList에 해당 값이 있습니까? " + list.ContainsValue("Tenth"));
  }
}

출력 결과

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

SortedList의 키와 값....
키: 1, 값: One
키: 2, 값: Two
키: 3, 값: Three
키: 4, 값: Four
키: 5, 값: Five
키: 6, 값: Six
키: 7, 값: Seven
키: 8, 값: Eight
SortedList에 해당 값이 있습니까? False

"Tenth"라는 값은 SortedList에 존재하지 않기 때문에 false가 반환됩니다. 이처럼 ContainsValue() 메서드 하나만으로 값의 포함 여부를 손쉽게 판별할 수 있습니다.

추가 참고 사항

SortedList 클래스에서 Contains() 메서드는 ContainsKey()와 동일하게 의 존재 여부를 확인합니다. 따라서 을 기준으로 검색할 때는 반드시 ContainsValue()를 사용해야 한다는 점을 기억해 두시기 바랍니다.