SortedList.IndexOfValue(Object) Metoda

Definicja

Zwraca indeks (liczony od zera) pierwszego wystąpienia określonej wartości w obiekcie SortedList.Returns the zero-based index of the first occurrence of the specified value in a SortedList object.

public:
 virtual int IndexOfValue(System::Object ^ value);
public virtual int IndexOfValue (object value);
abstract member IndexOfValue : obj -> int
override this.IndexOfValue : obj -> int
Public Overridable Function IndexOfValue (value As Object) As Integer

Parametry

value
Object

Wartość, która ma zostać zlokalizowana w obiekcie SortedList.The value to locate in the SortedList object. Wartość może być null.The value can be null.

Zwraca

Int32

Indeks (liczony od zera) pierwszego wystąpienia parametru value, jeśli value zostanie znaleziony w obiekcie SortedList; w przeciwnym razie-1.The zero-based index of the first occurrence of the value parameter, if value is found in the SortedList object; otherwise, -1.

Przykłady

Poniższy przykład kodu pokazuje, jak określić indeks klucza lub wartości w obiekcie SortedList.The following code example shows how to determine the index of a key or a value in a SortedList object.

#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.

Uwagi

Sekwencja indeksów jest oparta na sekwencji sortowania.The index sequence is based on the sort sequence. Gdy element zostanie dodany, zostanie wstawiony do SortedList w poprawnej kolejności sortowania, a indeksowanie odpowiednio dostosowuje.When an element is added, it is inserted into SortedList in the correct sort order, and the indexing adjusts accordingly. Po usunięciu elementu indeksowanie również odpowiednio dostosowuje.When an element is removed, the indexing also adjusts accordingly. W związku z tym indeks określonej pary klucz/wartość może ulec zmianie po dodaniu lub usunięciu elementów z obiektu SortedList.Therefore, the index of a specific key/value pair might change as elements are added or removed from the SortedList object.

Wartości elementów SortedList są porównywane z określoną wartością przy użyciu metody Equals.The values of the elements of the SortedList are compared to the specified value using the Equals method.

Ta metoda używa wyszukiwania liniowego; w związku z tym ta metoda jest operacją O(n), gdzie n jest Count.This method uses a linear search; therefore, this method is an O(n) operation, where n is Count.

Począwszy od .NET Framework 2,0, ta metoda używa item metody Equals i CompareTo obiektów kolekcji, aby określić, czy element istnieje.Starting with the .NET Framework 2.0, this method uses the collection's objects' Equals and CompareTo methods on item to determine whether item exists. We wcześniejszych wersjach .NET Framework to oznaczanie zostało wykonane przy użyciu metod Equals i CompareTo parametru item na obiektach w kolekcji.In the earlier versions of the .NET Framework, this determination was made by using the Equals and CompareTo methods of the item parameter on the objects in the collection.

Dotyczy

Zobacz też