Compartir a través de


SortedList.ContainsKey(Object) Método

Definición

Determina si un objeto SortedList contiene una clave específica.

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

Parámetros

key
Object

Clave que se buscará en el objeto SortedList.

Devoluciones

Es true si el objeto SortedList contiene un elemento con el parámetro key especificado; en caso contrario, es false.

Excepciones

key es null.

El comparador produce una excepción.

Ejemplos

En el ejemplo de código siguiente se muestra cómo determinar si un SortedList objeto contiene un elemento específico.

#using <system.dll>

using namespace System;
using namespace System::Collections;
void PrintIndexAndKeysAndValues( SortedList^ myList )
{
   Console::WriteLine(  "\t-INDEX-\t-KEY-\t-VALUE-" );
   for ( int i = 0; i < myList->Count; i++ )
   {
      Console::WriteLine(  "\t[{0}]:\t{1}\t{2}", i, myList->GetKey( i ), myList->GetByIndex( i ) );

   }
   Console::WriteLine();
}

int main()
{
   
   // Creates and initializes a new SortedList.
   SortedList^ mySL = gcnew SortedList;
   mySL->Add( 2, "two" );
   mySL->Add( 4, "four" );
   mySL->Add( 1, "one" );
   mySL->Add( 3, "three" );
   mySL->Add( (int^)0, "zero" );
   
   // Displays the values of the SortedList.
   Console::WriteLine(  "The SortedList contains the following values:" );
   PrintIndexAndKeysAndValues( mySL );
   
   // Searches for a specific key.
   int myKey = 2;
   Console::WriteLine(  "The key \"{0}\" is {1}.", myKey, mySL->ContainsKey( myKey ) ? (String^)"in the SortedList" : "NOT in the SortedList" );
   myKey = 6;
   Console::WriteLine(  "The key \"{0}\" is {1}.", myKey, mySL->ContainsKey( myKey ) ? (String^)"in the SortedList" : "NOT in the SortedList" );
   
   // Searches for a specific value.
   String^ myValue = "three";
   Console::WriteLine(  "The value \"{0}\" is {1}.", myValue, mySL->ContainsValue( myValue ) ? (String^)"in the SortedList" : "NOT in the SortedList" );
   myValue =  "nine";
   Console::WriteLine(  "The value \"{0}\" is {1}.", myValue, mySL->ContainsValue( myValue ) ? (String^)"in the SortedList" : "NOT in the SortedList" );
}

/* 
This code produces the following output.

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

The key "2" is in the SortedList.
The key "6" is NOT in the SortedList.
The value "three" is in the SortedList.
The value "nine" is NOT in the SortedList.
*/
using System;
using System.Collections;

public class SamplesSortedList  {

   public static void Main()  {

      // Creates and initializes a new SortedList.
      SortedList mySL = new SortedList();
      mySL.Add( 2, "two" );
      mySL.Add( 4, "four" );
      mySL.Add( 1, "one" );
      mySL.Add( 3, "three" );
      mySL.Add( 0, "zero" );

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

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

      // Searches for a specific value.
      string myValue = "three";
      Console.WriteLine( "The value \"{0}\" is {1}.", myValue, mySL.ContainsValue( myValue ) ? "in the SortedList" : "NOT in the SortedList" );
      myValue = "nine";
      Console.WriteLine( "The value \"{0}\" is {1}.", myValue, mySL.ContainsValue( myValue ) ? "in the SortedList" : "NOT in the SortedList" );
   }

   public static void PrintIndexAndKeysAndValues( SortedList myList )  {
      Console.WriteLine( "\t-INDEX-\t-KEY-\t-VALUE-" );
      for ( int i = 0; i < myList.Count; i++ )  {
         Console.WriteLine( "\t[{0}]:\t{1}\t{2}", i, myList.GetKey(i), myList.GetByIndex(i) );
      }
      Console.WriteLine();
   }
}
/*
This code produces the following output.

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

The key "2" is in the SortedList.
The key "6" is NOT in the SortedList.
The value "three" is in the SortedList.
The value "nine" is NOT in the SortedList.
*/
Imports System.Collections

Public Class SamplesSortedList    
    
    Public Shared Sub Main()
        
        ' Creates and initializes a new SortedList.
        Dim mySL As New SortedList()
        mySL.Add(2, "two")
        mySL.Add(4, "four")
        mySL.Add(1, "one")
        mySL.Add(3, "three")
        mySL.Add(0, "zero")
        
        ' Displays the values of the SortedList.
        Console.WriteLine("The SortedList contains the following values:")
        PrintIndexAndKeysAndValues(mySL)
        
        ' Searches for a specific key.
        Dim myKey As Integer = 2
        Dim msg As String
        If mySL.ContainsKey(myKey) Then
            msg = "in the SortedList"
        Else
            msg = "NOT in the SortedList"
        End If
        Console.WriteLine("The key ""{0}"" is {1}.", myKey, msg)
        myKey = 6
        If mySL.ContainsKey(myKey) Then
            msg = "in the SortedList"
        Else
            msg = "NOT in the SortedList"
        End If
        Console.WriteLine("The key ""{0}"" is {1}.", myKey, msg)        
        ' Searches for a specific value.
        Dim myValue As String = "three"
        If mySL.ContainsValue(myValue) Then
            msg = "in the SortedList"
        Else
            msg = "NOT in the SortedList"
        End If
        Console.WriteLine("The value ""{0}"" is {1}.", myValue, msg)
        myValue = "nine"
        If mySL.ContainsValue(myValue) Then
            msg = "in the SortedList"
        Else
            msg = "NOT in the SortedList"
        End If
        Console.WriteLine("The value ""{0}"" is {1}.", myValue, msg)
    End Sub   
    
    
    Public Shared Sub PrintIndexAndKeysAndValues(myList As SortedList)
        Console.WriteLine(ControlChars.Tab & "-INDEX-" & ControlChars.Tab & _
           "-KEY-" & ControlChars.Tab & "-VALUE-")
        Dim i As Integer
        For i = 0 To myList.Count - 1
            Console.WriteLine(ControlChars.Tab & "[{0}]:" & ControlChars.Tab & _
               "{1}" & ControlChars.Tab & "{2}", i, myList.GetKey(i), _
               myList.GetByIndex(i))
        Next i
        Console.WriteLine()
    End Sub
End Class

' This code produces the following output.
' 
' The SortedList contains the following values:
'     -INDEX-    -KEY-    -VALUE-
'     [0]:    0    zero
'     [1]:    1    one
'     [2]:    2    two
'     [3]:    3    three
'     [4]:    4    four
' 
' The key "2" is in the SortedList.
' The key "6" is NOT in the SortedList.
' The value "three" is in the SortedList.
' The value "nine" is NOT in the SortedList.

Comentarios

Los elementos de un SortedList objeto se ordenan por las claves según una implementación específica especificada IComparer cuando SortedList se crea o según la IComparable implementación proporcionada por las propias claves.

Este método se comporta exactamente como el Contains método .

Este método utiliza un algoritmo de búsqueda binaria; por lo tanto, este método es una O(log n) operación, donde n es Count.

A partir de .NET Framework 2.0, este método usa los objetos Equals y CompareTo métodos de la colección en item para determinar si el elemento existe. En las versiones anteriores de .NET Framework, esta determinación se realizó mediante el uso de los Equals métodos y CompareTo del item parámetro en los objetos de la colección.

Se aplica a

Consulte también