情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Dictionary<TKey, TValue>.ContainsKey メソッド

2013/12/12

指定したキーが Dictionary<TKey, TValue> に格納されているかどうかを判断します。

Namespace:  System.Collections.Generic
アセンブリ:  mscorlib (mscorlib.dll 内)

public bool ContainsKey(
	TKey key
)

パラメーター

key
型: TKey
Dictionary<TKey, TValue> 内で検索されるキー。

戻り値

型: System.Boolean
指定したキーを持つ要素が Dictionary<TKey, TValue> に格納されている場合は true。それ以外の場合は false

実装

IDictionary<TKey, TValue>.ContainsKey(TKey)
IReadOnlyDictionary<TKey, TValue>.ContainsKey(TKey)

例外条件
ArgumentNullException

keynull です。

このメソッドは O(1) 操作に近くなります。

Add メソッドを呼び出す前に、ContainsKey メソッドを使用して、キーが存在するかどうかをテストする方法を次のコード例に示します。また、TryGetValue メソッドを使用して値を取得する方法も示します。これは、プログラムがディクショナリにないキー値を頻繁に試行する場合に、効率的な方法です。最後に、この例では、Item プロパティ (C# ではインデクサー) を使用して、キーが存在するかどうかをテストする最も効率の悪い方法も示します。

次のコード例は、Dictionary<TKey, TValue> クラス用のより大きなコード例の一部です。


// ContainsKey can be used to test keys before inserting 
// them.
if (!openWith.ContainsKey("ht"))
{
   openWith.Add("ht", "hypertrm.exe");
   outputBlock.Text += String.Format("Value added for key = \"ht\": {0}",
       openWith["ht"]) + "\n";
}


...


// When a program often has to try keys that turn out not to
// be in the dictionary, TryGetValue can be a more efficient 
// way to retrieve values.
string value = "";
if (openWith.TryGetValue("tif", out value))
{
   outputBlock.Text += String.Format("For key = \"tif\", value = {0}.", value) + "\n";
}
else
{
   outputBlock.Text += "Key = \"tif\" is not found." + "\n";
}


...


// The indexer throws an exception if the requested key is
// not in the dictionary.
try
{
   outputBlock.Text += String.Format("For key = \"tif\", value = {0}.",
       openWith["tif"]) + "\n";
}
catch (KeyNotFoundException)
{
   outputBlock.Text += "Key = \"tif\" is not found." + "\n";
}


Windows Phone OS

サポート: 8.0, 7.1, 7.0

表示: