こんにちは!
なかむぅです。
C#のコードを読んでいるとContainsKey(TKey key)
というものがでてきて
となったので調べてみました。
結論、ContainsKeyはKeyの存在チェック
ContainsKey
はDictionaryクラスにあるKeyの存在チェックができるメソッドでした。
Contains・・・含む
なのでContainsKey
で「キーを含んでいるかどうか」ですね。
元をたどっていくとContainsKey
が使用されている変数やプロパティはDictionary型になっていると思います。
ContainsKeyの使い方
- hogeをキーに持つ値が入っているhogeDictionary
- piyoをキーに持つ値が入っているpiyoDictionary
といった二つのDictionary
を用意しました。
この二つのDictionary
を「hoge」、「piyo」それぞれのKey名でチェックします。
static void Main(string[] args)
{
// hogeをキーに持つ値が入っているhogeDictionary
var hogeDictionary = new Dictionary<string, string>();
hogeDictionary.Add("hoge", "hogehoge");
// piyoをキーに持つ値が入っているpiyoDictionary
var piyoDictionary = new Dictionary<string, string>();
piyoDictionary.Add("piyo", "piyopiyo");
Console.WriteLine("hogeDictionaryを調べます");
CheckKey(hogeDictionary);
Console.WriteLine("piyoDictionaryを調べます");
CheckKey(piyoDictionary);
}
// hoge、piyoそれぞれのKey名でチェックする
private static void CheckKey(Dictionary<string, string> dictionary)
{
var hoge = "hoge";
if (dictionary.ContainsKey(hoge))
{
Console.WriteLine($"「{hoge}」のKeyには「{dictionary[hoge]}」が入っています");
}
else
{
Console.WriteLine($"「{hoge}」のKeyには何も入っていません");
}
var piyo = "piyo";
if (dictionary.ContainsKey(piyo))
{
Console.WriteLine($"「{piyo}」のKeyには「{dictionary[piyo]}」が入っています");
}
else
{
Console.WriteLine($"「{piyo}」のKeyには何も入っていません");
}
Console.WriteLine();
}
HogeDictionaryを調べます
「hoge」のKeyには「hogehoge」が入っています
「piyo」のKeyには何も入っていません
piyoDictionaryを調べます
「hoge」のKeyには何も入っていません
「piyo」のKeyには「piyopiyo」が入っています
想定通りの結果になりました。
Dictionaryから値を取得するならTryGetValueがおすすめ
ContainsKey
も便利なのですが、値を取得するのであればTryGetValue
がおすすめです。
TryGetValue
はKeyの存在チェックと同時に値の取得も行ってくれるので、ContainsKey
のように
- ContainsKeyに渡すKey
- 値を取得するKey
と、わざわざKeyを2回書くしなくてもよくなります。
処理速度もContainsKey
比べて速いので、使用するならTryGetValue
を使用しましょう。
詳しくはこちらの記事をご覧ください。

私が働く会社では、一緒に働いてくれるエンジニアを募集しています♪
- 長く働いていても年収が全然上がらない…一気に年収を上げたい
- 残業をしたくてしているわけではないので、残業代はしっかりと出して欲しい
- やりたいことに挑戦させてもらえない…自分がしてみたいことに挑戦したい
- 通勤時間が長すぎるから、できるだけ短くしたい
- もっと勉強したいから、書籍代や資格の受験料など負担してくれるところに入りたい
- 現場に駆り出されてからは放置プレイ…相談できる人も先輩も居ないので、自分の状況をちゃんと理解してくれるところで働きたい
上記内容に1つでも当てはまる場合は、ぜひお声がけください。
私のサイトから応募していただいた方にはお好きなギフト券5000円分プレゼントさせていただきます(条件あり)。
まとめ
ContainsKey
はKeyの存在チェックで使用されていました。
以上、Dictionary
のContainsKey
についてでした!
と思った方はコメントいただけると嬉しいです。
最後までお読みいただきありがとうございました!