C# 연상배열 Dictionary 키(Key) 또는 값 중복 확인 방법

C# 연상 배열인 Dictionary는 키값을 중복하여 등록할 수 없습니다.

Dictionary에 요소를 추가하기 전에 추가하려는 키 또는 값이 중복하는지 확인하는 방법을 알아보도록 하겠습니다.

 

ContainsKey

Dictionary에 키를 추가하는 경우에 키가 중복하는지 확인하는 방법부터 알아보겠습니다.

Dictionary변수.ContainsKey(Key)

 

키 중복을 확인하는 방법으로 ContainsKey 메서드를 사용합니다.

ContainsKey 예제

using System;
using System.Collections.Generic;

namespace Sample
{
	class Sample
	{
		static void Main()
		{
			var myTable = new Dictionary<string, string>();
			myTable.Add("Korea", "Seoul");
			myTable.Add("Japan", "Tokyo");
			myTable.Add("America", "Washington");

			string str = "Japan";
			if(myTable.ContainsKey(str)) {
				Console.WriteLine("{0}는 이미 등록되어 있습니다.", str);
			} else {
				Console.WriteLine("{0}는 등록되어 있지 않습니다.", str);
			}

			Console.ReadKey();
		}
	}
}

 

결과

Japan는 이미 등록되어 있습니다.

 

ContainsKey() 메서드 결과값은 True 또는 False만을 반환합니다.

True – 같은 Key가 Dictionary에 있음

False – 같은 Key가 Dictionary에 없음

 

ContainsValue

Dictionary에 같은 값이 존재하는지 확인하는 방법도 알아보겠습니다.

Dictionary변수.ContainsValue(Value)

 

ContainsValue 예제

using System;
using System.Collections.Generic;

namespace Sample
{
	class Sample
	{
		static void Main()
		{
			var myTable = new Dictionary<string, string>();
			myTable.Add("Korea", "Seoul");
			myTable.Add("Japan", "Tokyo");
			myTable.Add("America", "Washington");

			string str = "Seoul";
			if(myTable.ContainsValue(str)) {
				Console.WriteLine("{0}는 이미 등록되어 있습니다.", str);
			} else {
				Console.WriteLine("{0}는 등록되어 있지 않습니다.", str);
			}

			Console.ReadKey();
		}
	}
}

 

결과

Seoul는 이미 등록되어 있습니다.

 

ContainsValue() 메서드 결과값 또한 True 또는 False만을 반환합니다.

True – 같은 Value가 Dictionary에 있음

False – 같은 Value가 Dictionary에 없음

 

정리

ContainsKey() 또는 ContainsValue()를 사용하여 Dictionary에 키 또는 값이 존재하는지 확인할 수 있습니다.

결과는 True 또는 False만을 반환하며, 존재하는 경우에는 True, 존재하지 않는 경우에는 False를 반환합니다.

댓글