Hashtable.ContainsKey(Object) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Określa, czy element Hashtable zawiera określony klucz.
public:
virtual bool ContainsKey(System::Object ^ key);
public virtual bool ContainsKey (object key);
abstract member ContainsKey : obj -> bool
override this.ContainsKey : obj -> bool
Public Overridable Function ContainsKey (key As Object) As Boolean
Parametry
Zwraca
true
jeśli element Hashtable zawiera element z określonym kluczem; w przeciwnym razie false
.
Wyjątki
key
to null
.
Przykłady
W poniższym przykładzie pokazano, jak określić, czy element Hashtable zawiera określony 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.
*/
using System;
using System.Collections;
public class SamplesHashtable
{
public static void Main()
{
// Creates and initializes a new Hashtable.
var myHT = new Hashtable();
myHT.Add(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) ? "in the Hashtable" : "NOT in the Hashtable");
myKey = 6;
Console.WriteLine("The key \"{0}\" is {1}.", myKey, myHT.ContainsKey(myKey) ? "in the Hashtable" : "NOT in the Hashtable");
// Searches for a specific value.
var myValue = "three";
Console.WriteLine("The value \"{0}\" is {1}.", myValue, myHT.ContainsValue( myValue ) ? "in the Hashtable" : "NOT in the Hashtable");
myValue = "nine";
Console.WriteLine("The value \"{0}\" is {1}.", myValue, myHT.ContainsValue( myValue ) ? "in the Hashtable" : "NOT in the Hashtable");
}
public static void PrintIndexAndKeysAndValues(Hashtable myHT)
{
int i = 0;
Console.WriteLine("\t-INDEX-\t-KEY-\t-VALUE-");
foreach (DictionaryEntry de in myHT)
Console.WriteLine($"\t[{i++}]:\t{de.Key}\t{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.
*/
Imports System.Collections
Public Class SamplesHashtable
Public Shared Sub Main()
' Creates and initializes a new Hashtable.
Dim myHT As New Hashtable()
myHT.Add(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.
Dim myKey As Integer = 2
Console.Write($"The key ""{myKey}"" is ")
If (myHT.ContainsKey(myKey))
Console.WriteLine("in the Hashtable.")
Else
Console.WriteLine("NOT in the Hashtable.")
End If
myKey = 6
Console.Write($"The key ""{myKey}"" is ")
If (myHT.ContainsKey(myKey))
Console.WriteLine(" in the Hashtable.")
Else
Console.WriteLine(" NOT in the Hashtable.")
End If
' Searches for a specific value.
Dim myValue As String = "three"
Console.Write("The value ""{0}"" is ", myValue)
If (myHT.ContainsValue(myValue))
Console.WriteLine(" in the Hashtable.")
Else
Console.WriteLine(" NOT in the Hashtable.")
End If
myValue = "nine"
Console.Write($"The value ""{myValue}"" is ")
If (myHT.ContainsValue(myValue))
Console.WriteLine(" in the Hashtable.")
Else
Console.WriteLine(" NOT in the Hashtable.")
End If
End Sub
Public Shared Sub PrintIndexAndKeysAndValues(myHT As Hashtable)
Dim i As Integer = 0
Console.WriteLine(vbTab + "-INDEX-" + vbTab + "-KEY-" + vbTab + "-VALUE-")
For Each de As DictionaryEntry In myHT
Console.WriteLine(vbTab + "[{0}]:" + vbTab + "{1}" + vbTab + "{2}", i, de.Key, de.Value)
i += 1
Next
Console.WriteLine()
End Sub
End Class
' 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.
Uwagi
Ta metoda zachowuje się dokładnie tak, jak Contains.
Ta metoda jest operacją O(1)
.
Począwszy od .NET Framework 2.0, ta metoda używa metod i CompareTo obiektów Equals kolekcji do item
określenia, czy element istnieje. We wcześniejszych wersjach .NET Framework ta determinacja została wykonana przy użyciu Equals metod item
i CompareTo parametru na obiektach w kolekcji.