[C#]Dictionary(連想配列)のキーの存在チェックをするには?

C#

どうも、ちょげ(@chogetarou)です。

Dictionary(連想配列)のキーの存在チェックをする方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

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()メソッドを使う方法

コメント

タイトルとURLをコピーしました