SortedList.IndexOfKey(Object) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
Nesnede SortedList bulunacak anahtar.
Döndürülenler
parametresinin key
sıfır tabanlı dizini, nesnesinde SortedList bulunursakey
, aksi takdirde -1.
Özel durumlar
key
, null
değeridir.
Karşılaştırıcı bir özel durum oluşturur.
Örnekler
Aşağıdaki kod örneği, bir nesnedeki bir anahtarın veya değerin SortedList dizininin nasıl belirleneceğini gösterir.
#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.
Açıklamalar
Bir SortedList nesnenin öğeleri, oluşturulurken SortedList belirtilen belirli IComparer bir uygulamaya veya anahtarların kendileri tarafından sağlanan uygulamaya göre anahtarlara göre IComparable 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.
.NET Framework 2.0'dan başlayarak, bu yöntem öğenin var olup olmadığını belirlemek için koleksiyonun nesnelerini Equals ve CompareTo yöntemlerini item
kullanır. .NET Framework önceki sürümlerinde bu belirleme, koleksiyonundaki Equals nesneler üzerinde parametresinin item
ve CompareTo yöntemleri kullanılarak yapılmıştır.