どうも、ちょげ(@chogetarou)です。
Dictionary(連想配列)のキーの存在チェックをする方法を紹介します。
方法

Dictionary(連想配列)のキーの存在チェックをする方法は、2つあります。
ContainsKey()メソッド
1つは、ContainsKey()メソッドを使う方法です。
まず、DictionaryからContainsKey()メソッドを呼び出します。
そして、ContainsKey()メソッドの引数にキーを指定します。
bool keyExists = dict.ContainsKey(キー);
上記のContainsKey()メソッドは、引数のキーが呼び出したDictionaryに存在すれば「True」、存在しなければ「False」を返します。
使用例
using System;
using System.Collections.Generic;
public class Example
{
public static void Main()
{
Dictionary<string, int> numbers = new Dictionary<string, int>()
{
{ "one", 1 },
{ "two", 2 },
{ "three", 3 },
{ "four", 4 },
{ "five", 5 },
};
bool keyExists1 = numbers.ContainsKey("two");
bool keyExists2 = numbers.ContainsKey("six");
Console.WriteLine(keyExists1); //True
Console.WriteLine(keyExists2); //False
}
}
TryGetValue()メソッド
もう1つは、TryGetValue()メソッドを使う方法です。
まず、Dictionaryの値の型と同じ変数を用意します。
TValue value; //TValueはDictionaryの値の型
そして、DictionaryからTryGetValue()メソッドを呼び出します。
TryGetValue()メソッドの第1引数にキー、第2引数に用意した変数をout修飾子付きで指定します。
bool keyExists = dict.TryGetValue(key, out value); //第1引数はキー
上記のTryGetValue()メソッドは、第1引数のキーが呼び出したDictionaryに存在すれば「True」、存在しなければ「False」を返します。
また、キーが存在した場合は、キーの値を第2引数の変数に格納します。
使用例
using System;
using System.Collections.Generic;
public class Example
{
public static void Main()
{
Dictionary<string, int> numbers = new Dictionary<string, int>()
{
{ "one", 1 },
{ "two", 2 },
{ "three", 3 },
{ "four", 4 },
{ "five", 5 },
};
int value1;
bool keyExists1 = numbers.TryGetValue("four", out value1);
int value2;
bool keyExists2 = numbers.TryGetValue("seven", out value2);
Console.WriteLine(keyExists1); //True
Console.WriteLine(value1); //4
Console.WriteLine(keyExists2); //False
Console.WriteLine(value2); //0
}
}
まとめ
Dictionary(連想配列)のキーの存在チェックをする方法は、次の2つです。
- ContainsKey()メソッドを使う方法
- TryGetValue()メソッドを使う方法
コメント