SortedList.IndexOfKey(Object) Metodo

Definizione

Viene restituito l'indice in base zero della chiave specificata in un oggetto SortedList.

public virtual int IndexOfKey (object key);

Parametri

key
Object

Chiave da individuare nell'oggetto SortedList.

Restituisce

Indice in base zero del parametro key se il parametro key viene trovato nell'oggetto SortedList; in caso contrario, -1.

Eccezioni

key è null.

L'operatore di confronto genera un'eccezione.

Esempio

Nell'esempio di codice seguente viene illustrato come determinare l'indice di una chiave o di un valore in un SortedList oggetto .

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.
*/

Commenti

Gli elementi di un SortedList oggetto vengono ordinati in base alle chiavi in base a un'implementazione specifica IComparer specificata al momento SortedList della creazione di o in base all'implementazione IComparable fornita dalle chiavi stesse.

La sequenza di indice è basata sulla sequenza di ordinamento. Quando viene aggiunto un elemento, viene inserito nell'ordinamento SortedList corretto e l'indicizzazione viene modificata di conseguenza. Quando un elemento viene rimosso, anche l'indicizzazione viene modificata di conseguenza. Pertanto, l'indice di una coppia chiave/valore specifica può cambiare man mano che gli elementi vengono aggiunti o rimossi da SortedList.

Questo metodo usa un algoritmo di ricerca binaria; pertanto, questo metodo è un'operazione O(log n) , dove n è Count.

A partire da .NET Framework 2.0, questo metodo usa i metodi e CompareTo gli oggetti Equals della raccolta per item determinare se l'elemento esiste. Nelle versioni precedenti di .NET Framework questa determinazione è stata effettuata usando i Equals metodi e CompareTo del item parametro sugli oggetti nella raccolta.

Si applica a

Prodotto Versioni
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0

Vedi anche