SortedList.IndexOfKey(Object) Methode

Definitie

Retourneert de op nul gebaseerde index van de opgegeven sleutel in een SortedList object.

public:
 virtual int IndexOfKey(System::Object ^ key);
public virtual int IndexOfKey(object key);
abstract member IndexOfKey : obj -> int
override this.IndexOfKey : obj -> int
Public Overridable Function IndexOfKey (key As Object) As Integer

Parameters

key
Object

De sleutel die in het SortedList object moet worden gevonden.

Retouren

De op nul gebaseerde index van de key parameter, als key deze wordt gevonden in het SortedList object, anders -1.

Uitzonderingen

key is null.

De vergelijkingsfunctie genereert een uitzondering.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u de index van een sleutel of een waarde in een SortedList object kunt bepalen.

using System;
using System.Collections;
public class SamplesSortedList  {

   public static void Main()  {

      // Creates and initializes a new SortedList.
      SortedList mySL = new SortedList();
      mySL.Add( 1, "one" );
      mySL.Add( 3, "three" );
      mySL.Add( 2, "two" );
      mySL.Add( 4, "four" );
      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 at index {1}.", myKey, mySL.IndexOfKey( myKey ) );

      // Searches for a specific value.
      string myValue = "three";
      Console.WriteLine( "The value \"{0}\" is at index {1}.", myValue, mySL.IndexOfValue( myValue ) );
   }

   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 at index 2.
The value "three" is at index 3.
*/
Imports System.Collections

Public Class SamplesSortedList    
    
    Public Shared Sub Main()
        
        ' Creates and initializes a new SortedList.
        Dim mySL As New SortedList()
        mySL.Add(1, "one")
        mySL.Add(3, "three")
        mySL.Add(2, "two")
        mySL.Add(4, "four")
        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
        Console.WriteLine("The key ""{0}"" is at index {1}.", myKey, _
           mySL.IndexOfKey(myKey))
        
        ' Searches for a specific value.
        Dim myValue As String = "three"
        Console.WriteLine("The value ""{0}"" is at index {1}.", myValue, _
           mySL.IndexOfValue(myValue))
    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 at index 2.
' The value "three" is at index 3.

Opmerkingen

De elementen van een SortedList object worden gesorteerd op de sleutels op basis van een specifieke IComparer implementatie die is opgegeven bij het SortedList maken, of volgens de IComparable implementatie die door de sleutels zelf wordt geleverd.

De indexvolgorde is gebaseerd op de sorteervolgorde. Wanneer een element wordt toegevoegd, wordt het ingevoegd SortedList in de juiste sorteervolgorde en wordt de indexering dienovereenkomstig aangepast. Wanneer een element wordt verwijderd, wordt de indexering ook dienovereenkomstig aangepast. Daarom kan de index van een specifiek sleutel-/waardepaar veranderen wanneer elementen worden toegevoegd of verwijderd uit de SortedList.

Deze methode maakt gebruik van een binair zoekalgoritmen; daarom is deze methode een O(log n) bewerking, waarbij n .Count

Deze methode maakt gebruik van de objecten Equals en CompareTo methoden item van de verzameling om te bepalen of item deze bestaat.

Van toepassing op

Zie ook