SortedList<TKey,TValue>.Item[TKey] Właściwość

Definicja

Pobiera lub ustawia wartość skojarzoną z określonym kluczem.Gets or sets the value associated with the specified key.

public:
 property TValue default[TKey] { TValue get(TKey key); void set(TKey key, TValue value); };
public TValue this[TKey key] { get; set; }
member this.Item('Key) : 'Value with get, set
Default Public Property Item(key As TKey) As TValue

Parametry

key
TKey

Klucz, którego wartość ma zostać pobrana lub ustawiona.The key whose value to get or set.

Wartość właściwości

TValue

Wartość skojarzona z określonym kluczem.The value associated with the specified key. Jeśli określony klucz nie zostanie znaleziony, operacja get wyrzuca KeyNotFoundException i tworzy nowy element przy użyciu określonego klucza.If the specified key is not found, a get operation throws a KeyNotFoundException and a set operation creates a new element using the specified key.

Implementuje

Wyjątki

key to null.key is null.

Właściwość jest pobierana i nie key istnieje w kolekcji.The property is retrieved and key does not exist in the collection.

Przykłady

Poniższy przykład kodu używa Item[] właściwości (indeksator w języku C#) do pobierania wartości, pokazując, że KeyNotFoundException jest zgłaszany, gdy żądany klucz nie jest obecny i pokazuje, że wartość skojarzona z kluczem może zostać zamieniona.The following code example uses the Item[] property (the indexer in C#) to retrieve values, demonstrating that a KeyNotFoundException is thrown when a requested key is not present, and showing that the value associated with a key can be replaced.

W przykładzie pokazano również, jak używać TryGetValue metody jako wydajniejszego sposobu pobierania wartości, jeśli program często musi wypróbować wartości klucza, które nie znajdują się na sortowanej liście.The example also shows how to use the TryGetValue method as a more efficient way to retrieve values if a program often must try key values that are not in the sorted list.

Ten przykład kodu jest częścią większego przykładu dostarczonego dla SortedList<TKey,TValue> klasy.This code example is part of a larger example provided for the SortedList<TKey,TValue> class.

// The Item property is another name for the indexer, so you
// can omit its name when accessing elements.
Console::WriteLine("For key = \"rtf\", value = {0}.",
    openWith["rtf"]);

// The indexer can be used to change the value associated
// with a key.
openWith["rtf"] = "winword.exe";
Console::WriteLine("For key = \"rtf\", value = {0}.",
    openWith["rtf"]);

// If a key does not exist, setting the indexer for that key
// adds a new key/value pair.
openWith["doc"] = "winword.exe";
// The Item property is another name for the indexer, so you
// can omit its name when accessing elements.
Console.WriteLine("For key = \"rtf\", value = {0}.",
    openWith["rtf"]);

// The indexer can be used to change the value associated
// with a key.
openWith["rtf"] = "winword.exe";
Console.WriteLine("For key = \"rtf\", value = {0}.",
    openWith["rtf"]);

// If a key does not exist, setting the indexer for that key
// adds a new key/value pair.
openWith["doc"] = "winword.exe";
' The Item property is the default property, so you 
' can omit its name when accessing elements. 
Console.WriteLine("For key = ""rtf"", value = {0}.", _
    openWith("rtf"))

' The default Item property can be used to change the value
' associated with a key.
openWith("rtf") = "winword.exe"
Console.WriteLine("For key = ""rtf"", value = {0}.", _
    openWith("rtf"))

' If a key does not exist, setting the default Item property
' for that key adds a new key/value pair.
openWith("doc") = "winword.exe"
// The indexer throws an exception if the requested key is
// not in the list.
try
{
    Console::WriteLine("For key = \"tif\", value = {0}.",
        openWith["tif"]);
}
catch (KeyNotFoundException^)
{
    Console::WriteLine("Key = \"tif\" is not found.");
}
// The indexer throws an exception if the requested key is
// not in the list.
try
{
    Console.WriteLine("For key = \"tif\", value = {0}.",
        openWith["tif"]);
}
catch (KeyNotFoundException)
{
    Console.WriteLine("Key = \"tif\" is not found.");
}
' The default Item property throws an exception if the requested
' key is not in the list.
Try
    Console.WriteLine("For key = ""tif"", value = {0}.", _
        openWith("tif"))
Catch 
    Console.WriteLine("Key = ""tif"" is not found.")
End Try
// When a program often has to try keys that turn out not to
// be in the list, TryGetValue can be a more efficient
// way to retrieve values.
String^ value = "";
if (openWith->TryGetValue("tif", value))
{
    Console::WriteLine("For key = \"tif\", value = {0}.", value);
}
else
{
    Console::WriteLine("Key = \"tif\" is not found.");
}
// When a program often has to try keys that turn out not to
// be in the list, TryGetValue can be a more efficient
// way to retrieve values.
string value = "";
if (openWith.TryGetValue("tif", out value))
{
    Console.WriteLine("For key = \"tif\", value = {0}.", value);
}
else
{
    Console.WriteLine("Key = \"tif\" is not found.");
}
' When a program often has to try keys that turn out not to
' be in the list, TryGetValue can be a more efficient 
' way to retrieve values.
Dim value As String = ""
If openWith.TryGetValue("tif", value) Then
    Console.WriteLine("For key = ""tif"", value = {0}.", value)
Else
    Console.WriteLine("Key = ""tif"" is not found.")
End If

Uwagi

Ta właściwość zapewnia możliwość dostępu do określonego elementu w kolekcji przy użyciu następującej składni: myCollection[key] .This property provides the ability to access a specific element in the collection by using the following syntax: myCollection[key].

Klucz nie może być null , ale wartość może być, jeśli typ wartości na liście, TValue jest typem referencyjnym.A key cannot be null, but a value can be, if the type of values in the list, TValue, is a reference type.

Jeśli klucz nie zostanie znaleziony, gdy wartość jest pobierana, KeyNotFoundException jest generowany.If the key is not found when a value is being retrieved, KeyNotFoundException is thrown. Jeśli klucz nie zostanie znaleziony podczas ustawiania wartości, zostanie dodany klucz i wartość.If the key is not found when a value is being set, the key and value are added.

Można również użyć właściwości, Item[] Aby dodać nowe elementy przez ustawienie wartości klucza, który nie istnieje w, SortedList<TKey,TValue> na przykład myCollection["myNonexistentKey"] = myValue .You can also use the Item[] property to add new elements by setting the value of a key that does not exist in the SortedList<TKey,TValue>; for example, myCollection["myNonexistentKey"] = myValue. Jeśli jednak określony klucz już istnieje w SortedList<TKey,TValue> , ustawienie Item[] Właściwości zastępuje starą wartość.However, if the specified key already exists in the SortedList<TKey,TValue>, setting the Item[] property overwrites the old value. Z kolei Metoda nie Add modyfikuje istniejących elementów.In contrast, the Add method does not modify existing elements.

Język C# używa this słowa kluczowego do definiowania indeksatorów zamiast implementowania Item[] właściwości.The C# language uses the this keyword to define the indexers instead of implementing the Item[] property. Visual Basic implementuje Item[] jako właściwość domyślną, która zapewnia te same funkcje indeksowania.Visual Basic implements Item[] as a default property, which provides the same indexing functionality.

Pobieranie wartości tej właściwości jest operacją O (log n ), gdzie n to Count .Retrieving the value of this property is an O(log n) operation, where n is Count. Ustawienie właściwości jest operacją O (log n ), jeśli klucz już znajduje się w SortedList<TKey,TValue> .Setting the property is an O(log n) operation if the key is already in the SortedList<TKey,TValue>. Jeśli klucz nie znajduje się na liście, ustawienie właściwości jest n operacją o () dla danych niesortowanych lub O (log n ), jeśli nowy element zostanie dodany na końcu listy.If the key is not in the list, setting the property is an O(n) operation for unsorted data, or O(log n) if the new element is added at the end of the list. Jeśli Wstaw powoduje zmianę rozmiaru, operacja ma wartość O ( n ).If insertion causes a resize, the operation is O(n).

Dotyczy

Zobacz też