SortedList.IndexOfKey(Object) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Returnerar det nollbaserade indexet för den angivna nyckeln i ett SortedList objekt.
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
Parametrar
- key
- Object
Nyckeln som ska hittas SortedList i objektet.
Returer
Parameterns key nollbaserade index, om key det finns i SortedList objektet, annars -1.
Undantag
key är null.
Jämförelsen genererar ett undantag.
Exempel
I följande kodexempel visas hur du fastställer indexet för en nyckel eller ett värde i ett SortedList objekt.
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.
Kommentarer
Elementen i ett SortedList objekt sorteras efter nycklarna antingen enligt en specifik IComparer implementering som anges när SortedList det skapas eller enligt implementeringen IComparable som tillhandahålls av själva nycklarna.
Indexsekvensen baseras på sorteringssekvensen. När ett element läggs till infogas det i SortedList rätt sorteringsordning och indexeringen justeras därefter. När ett element tas bort justeras även indexeringen i enlighet med detta. Indexet för ett specifikt nyckel/värde-par kan därför ändras när element läggs till eller tas bort från SortedList.
Den här metoden använder en algoritm för binär sökning. Därför är den här metoden en O(log n) åtgärd, där n är Count.
Den här metoden använder samlingens objekt Equals och metoder för item att avgöra om item det CompareTo finns.