Dil

SortedList.IndexOfKey(Object) Yöntem

Tanım

Bir SortedList nesnede belirtilen anahtarın sıfır tabanlı dizinini döndürür.

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

Parametreler

key
Object

nesnesinde SortedList bulunacak anahtar.

Döndürülenler

nesnesinde key bulunursa key parametresinin SortedList sıfır tabanlı dizini; aksi takdirde -1.

Özel durumlar

key, null'e eşittir.

Karşılaştırıcı bir özel durum oluşturur.

Örnekler

Aşağıdaki kod örneğinde bir anahtarın veya nesnedeki bir değerin dizininin nasıl belirleneceği gösterilmektedir 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( 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.

Açıklamalar

Bir SortedList nesnenin öğeleri, anahtarlar tarafından oluşturulurken IComparer belirtilen belirli SortedList bir uygulamaya veya anahtarların IComparable kendileri tarafından sağlanan uygulamaya göre sıralanır.

Dizin dizisi sıralama dizisini temel alır. Bir öğe eklendiğinde, doğru sıralama düzeninde içine SortedList eklenir ve dizinleme buna göre ayarlanır. Bir öğe kaldırıldığında, dizinleme de buna göre ayarlanır. Bu nedenle, öğeleri eklendikçe veya öğesinden kaldırıldıkçe belirli bir anahtar/değer çiftinin SortedListdizini değişebilir.

Bu yöntem ikili arama algoritması kullanır; bu nedenle, bu yöntem bir O(log n) işlemdir ve burada n şeklindedir Count.

Bu yöntem, mevcut olup olmadığını Equals belirlemek için koleksiyonun nesnelerini CompareTo ve item yöntemlerini item kullanır.

Şunlara uygulanır

Ayrıca bkz.