ContainsKey Method

Hashtable::ContainsKey Method (Object^)

 

Determines whether the Hashtable contains a specific key.

Namespace:   System.Collections
Assembly:  mscorlib (in mscorlib.dll)

public:
virtual bool ContainsKey(
	Object^ key
)

Parameters

key
Type: System::Object^

The key to locate in the Hashtable.

Return Value

Type: System::Boolean

true if the Hashtable contains an element with the specified key; otherwise, false.

Exception Condition
ArgumentNullException

key is null.

This method behaves exactly as Contains.

This method is an O(1) operation.

Starting with the .NET Framework 2.0, this method uses the collection’s objects’ Equals and CompareTo methods on item to determine whether item exists. In the earlier versions of the .NET Framework, this determination was made by using the Equals and CompareTo methods of the item parameter on the objects in the collection.

The following example shows how to determine whether the Hashtable contains a specific element.

using namespace System;
using namespace System::Collections;
void PrintIndexAndKeysAndValues( Hashtable^ myHT );
int main()
{

   // Creates and initializes a new Hashtable.
   Hashtable^ myHT = gcnew Hashtable;
   myHT->Add( (int^)0, "zero" );
   myHT->Add( 1, "one" );
   myHT->Add( 2, "two" );
   myHT->Add( 3, "three" );
   myHT->Add( 4, "four" );

   // Displays the values of the Hashtable.
   Console::WriteLine( "The Hashtable contains the following values:" );
   PrintIndexAndKeysAndValues( myHT );

   // Searches for a specific key.
   int myKey = 2;
   Console::WriteLine( "The key \"{0}\" is {1}.", myKey, myHT->ContainsKey( myKey ) ? (String^)"in the Hashtable" : "NOT in the Hashtable" );
   myKey = 6;
   Console::WriteLine( "The key \"{0}\" is {1}.", myKey, myHT->ContainsKey( myKey ) ? (String^)"in the Hashtable" : "NOT in the Hashtable" );

   // Searches for a specific value.
   String^ myValue = "three";
   Console::WriteLine( "The value \"{0}\" is {1}.", myValue, myHT->ContainsValue( myValue ) ? (String^)"in the Hashtable" : "NOT in the Hashtable" );
   myValue = "nine";
   Console::WriteLine( "The value \"{0}\" is {1}.", myValue, myHT->ContainsValue( myValue ) ? (String^)"in the Hashtable" : "NOT in the Hashtable" );
}

void PrintIndexAndKeysAndValues( Hashtable^ myHT )
{
   int i = 0;
   Console::WriteLine( "\t-INDEX-\t-KEY-\t-VALUE-" );
   IEnumerator^ myEnum = myHT->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      DictionaryEntry de =  *safe_cast<DictionaryEntry ^>(myEnum->Current);
      Console::WriteLine( "\t[{0}]:\t{1}\t{2}", i++, de.Key, de.Value );
   }

   Console::WriteLine();
}

/* 
 This code produces the following output.

 The Hashtable contains the following values:
         -INDEX- -KEY-   -VALUE-
         [0]:    4       four
         [1]:    3       three
         [2]:    2       two
         [3]:    1       one
         [4]:    0       zero

 The key "2" is in the Hashtable.
 The key "6" is NOT in the Hashtable.
 The value "three" is in the Hashtable.
 The value "nine" is NOT in the Hashtable.

 */

Universal Windows Platform
Available since 10
.NET Framework
Available since 1.1
Return to top
Show:
© 2016 Microsoft