SortedList.IndexOfKey(Object) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vrátí nulový index zadaného klíče v objektu SortedList .
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
Parametry
- key
- Object
Klíč, který se má v objektu SortedList najít.
Návraty
Index parametru key
založený na nule, pokud key
je v objektu SortedList nalezen; v opačném případě -1.
Výjimky
key
je null
.
Porovnávací nástroj vyvolá výjimku.
Příklady
Následující příklad kódu ukazuje, jak určit index klíče nebo hodnoty v objektu SortedList .
#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( 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 ) );
}
/*
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.
*/
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.
Poznámky
Prvky objektu SortedList jsou seřazeny podle klíčů buď podle konkrétní IComparer implementace zadané při SortedList vytvoření, nebo podle IComparable implementace poskytované samotnými klíči.
Pořadí indexů je založené na pořadí řazení. Když je prvek přidán, vloží se do SortedList správného pořadí řazení a indexování se odpovídajícím způsobem upraví. Při odebrání elementu se indexování také odpovídajícím způsobem upraví. Index konkrétního páru klíč/hodnota se proto může měnit při přidání nebo odebrání prvků z objektu SortedList.
Tato metoda používá binární vyhledávací algoritmus; proto je O(log n)
tato metoda operace, kde n
je Count.
Počínaje rozhraním .NET Framework 2.0 tato metoda používá objekty Equals kolekce a CompareTo metody na item
k určení, zda existuje položka. V dřívějších verzích rozhraní .NET Framework bylo toto určení provedeno pomocí Equals metod a CompareTo parametru item
u objektů v kolekci.