SortedList<TKey,TValue>.Item[TKey] SortedList<TKey,TValue>.Item[TKey] SortedList<TKey,TValue>.Item[TKey] SortedList<TKey,TValue>.Item[TKey] Property

Definición

Obtiene o establece el valor asociado a la clave especificada.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

Parámetros

key
TKey TKey TKey TKey

Clave cuyo valor se va a obtener o a establecer.The key whose value to get or set.

Valor de propiedad

TValue TValue TValue TValue

Valor asociado a la clave especificada.The value associated with the specified key. Si no se encuentra la clave especificada, en el caso de una operación Get se producirá una excepción KeyNotFoundException y en el caso de una operación de establecimiento se creará un nuevo elemento utilizando la clave especificada.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.

Implementaciones

Excepciones

Se ha recuperado la propiedad y key no existe en la colección.The property is retrieved and key does not exist in the collection.

Ejemplos

En el ejemplo de código siguiente Item[TKey] se usa la propiedad (el C#indizador en) para recuperar valores, lo que KeyNotFoundException muestra que se produce una excepción cuando una clave solicitada no está presente y que muestra que se puede reemplazar el valor asociado a una clave.The following code example uses the Item[TKey] 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.

En el ejemplo también se muestra cómo utilizar TryGetValue el método como una forma más eficaz de recuperar valores si un programa debe probar con frecuencia valores de clave que no están en la lista ordenada.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.

Este ejemplo de código forma parte de un ejemplo más extenso proporcionado SortedList<TKey,TValue> para la clase.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

Comentarios

Esta propiedad permite obtener acceso a un elemento específico de la colección utilizando la sintaxis siguiente: myCollection[key].This property provides the ability to access a specific element in the collection by using the following syntax: myCollection[key].

Una clave no puede nullser, pero un valor puede ser, si el tipo de valores de la TValuelista es un tipo de referencia.A key cannot be null, but a value can be, if the type of values in the list, TValue, is a reference type.

Si no se encuentra la clave cuando se recupera un valor, KeyNotFoundException se produce una excepción.If the key is not found when a value is being retrieved, KeyNotFoundException is thrown. Si no se encuentra la clave cuando se establece un valor, se agregan la clave y el valor.If the key is not found when a value is being set, the key and value are added.

También puede usar la Item[TKey] propiedad para agregar nuevos elementos estableciendo el valor de una clave que no existe SortedList<TKey,TValue>en; por ejemplo, myCollection["myNonexistentKey"] = myValue.You can also use the Item[TKey] 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. Sin embargo, si la clave especificada ya existe en SortedList<TKey,TValue>, al establecer Item[TKey] la propiedad se sobrescribe el valor anterior.However, if the specified key already exists in the SortedList<TKey,TValue>, setting the Item[TKey] property overwrites the old value. En cambio, el Add método no modifica los elementos existentes.In contrast, the Add method does not modify existing elements.

El C# lenguaje utiliza la this palabra clave para definir los indizadores en lugar de implementar Item[TKey] la propiedad.The C# language uses the this keyword to define the indexers instead of implementing the Item[TKey] property. Visual Basic implementa Item[TKey] como propiedad predeterminada, lo que proporciona la misma funcionalidad de indización.Visual Basic implements Item[TKey] as a default property, which provides the same indexing functionality.

La recuperación del valor de esta propiedad es una operación O ( nlog), donde n es Count.Retrieving the value of this property is an O(log n) operation, where n is Count. Establecer la propiedad es una operación O ( nlog) si la clave ya está SortedList<TKey,TValue>en.Setting the property is an O(log n) operation if the key is already in the SortedList<TKey,TValue>. Si la clave no está en la lista, el establecimiento de la propiedad es unanoperación O () para los datos sin ordenar o o ( nlog) si el nuevo elemento se agrega al final de la lista.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. Si la inserción provoca un redimensionamiento, la operación esnO ().If insertion causes a resize, the operation is O(n).

Se aplica a

Consulte también: