SortedList.IndexOfKey メソッド
アセンブリ: System (system.dll 内)

Dim instance As SortedList(Of TKey, TValue) Dim key As TKey Dim returnValue As Integer returnValue = instance.IndexOfKey(key)
戻り値
SortedList 全体内で key が見つかった場合は、見つかった位置の 0 から始まるインデックス番号。それ以外の場合は -1。



Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


SortedList ジェネリック クラス
SortedList メンバ
System.Collections.Generic 名前空間
SortedList.ContainsKey メソッド
IndexOfValue
SortedList.IndexOfKey メソッド
アセンブリ: mscorlib (mscorlib.dll 内)

Dim instance As SortedList Dim key As Object Dim returnValue As Integer returnValue = instance.IndexOfKey(key)
戻り値
key が SortedList に存在する場合は、 key の 0 から始まるインデックス番号。それ以外の場合は -1。


SortedList の要素は、SortedList が作成されるときに指定された IComparer の特定の実装か、キー自体が提供する IComparable 実装のいずれかに従って並べ替えられます。
並べ替え順に基づいたインデックス順。要素を追加すると、その要素は正しい並べ替え順に従って SortedList に挿入され、それに応じてインデックスも調整されます。要素が削除されると、それに応じてインデックスも調整されます。したがって、特定のキー/値ペアのインデックスは、要素が SortedList で追加または削除されるときに変更されることがあります。
このメソッドはバイナリ検索アルゴリズムを実行します。したがって、このメソッドは、O(log n) 操作です。ここで、n は Count です。

SortedList 内のキーまたは値のインデックスを確認する方法の例を次に示します。
Imports System Imports System.Collections Imports Microsoft.VisualBasic 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.
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. */
#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. */
import System.*; import System.Collections.*; public class SamplesSortedList { public static void main(String[] args) { // Creates and initializes a new SortedList. SortedList mySL = new SortedList(); mySL.Add((Int32)1, "one"); mySL.Add((Int32)3, "three"); mySL.Add((Int32)2, "two"); mySL.Add((Int32)4, "four"); mySL.Add((Int32)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}.", System.Convert.ToString(myKey), System.Convert.ToString(mySL.IndexOfKey((Int32)myKey))); // Searches for a specific value. String myValue = "three"; Console.WriteLine("The value \"{0}\" is at index {1}.", System.Convert.ToString(myValue), System.Convert.ToString(mySL.IndexOfValue(myValue))); } //main public static void PrintIndexAndKeysAndValues(SortedList myList) { Console.WriteLine("\t-INDEX-\t-KEY-\t-VALUE-"); for (int i = 0; i < myList.get_Count(); i++) { Console.WriteLine("\t[{0}]:\t{1}\t{2}", System.Convert.ToString(i), System.Convert.ToString(myList.GetKey(i)), System.Convert.ToString(myList.GetByIndex(i))); } Console.WriteLine(); } //PrintIndexAndKeysAndValues } //SamplesSortedList /* 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. */

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- SortedList.IndexOfKeyのページへのリンク