Contiene claves de diccionario
Referencia MSDN:
La clase genérica SortedDictionary representa una colección de pares clave/valor ordenados por clave .
Parámetros de tipo
El tipo de clave en el diccionario TKey.
El tipo de valores en el diccionario TValue.
La clase genérica SortedDictionary es un árbol de búsqueda binario con una complejidad de operación de recuperación de O(log n), donde n es el número de elementos en el diccionario. En este sentido, es similar a la clase genérica SortedList. Ambas clases tienen modelos de objetos similares y ambas tienen una complejidad de recuperación O(log n). La diferencia entre estas dos clases es el uso de la memoria y la velocidad de inserción y eliminación de elementos:
SortedList usa menos memoria que SortedDictionary.
foreach (par clave-valor & ltint, string & gt kvp en mi diccionario) {...}
La declaración foreach es un contenedor para enumeradores, solo se permiten enumeraciones Lecturas de la colección están permitidas, pero no se permiten escrituras en la colección.
Ejemplos de uso:
Usar el sistema;
Usar el sistema. recolectar. Genéricos;
Ejemplo de clase pública
{
Public static void Main()
{
/ / Cree un nuevo diccionario de cadenas con claves de cadenas.
//
Diccionario & ltstring, string & gt open mode =
Nuevo diccionario & ltstring, string & gt();
//Añadir algunos elementos al diccionario. No
//Claves duplicadas, pero algunos valores están duplicados.
openWith. add("txt","notepad.exe");
openWith. add("BMP","paint.exe");
openWith. add("DIB","paint.exe");
openWith. add("rtf", "wordpad.exe");
//El método Add generará una excepción si la nueva clave
//ya está en el diccionario.
Pruebe
{
openWith. add("txt", "winword.exe");
}
catch (excepción de argumento)
{
Consola . WriteLine("Ya existe un elemento con Key="txt".");
}
La propiedad Item es otro nombre para el indexador, por lo que
//Puedes omitir el nombre al acceder a un elemento.
Consola. WriteLine("For key = "rtf", value = {0}.",
abrir con【"rtf"]);
//El indexador se puede utilizar para cambiar el Valor asociado
//Con clave.
abrir con【"rtf"】="winword .exe";
Consola. WriteLine("For key = "rtf", value = {0}.",
abrir con【"rtf"]);
//Si la clave no existe, establecer indexador para esta clave
//Agrega un nuevo par clave/valor.
abrir con【"doc"】="winword .exe";
//Si la clave solicitada es, el indexador generará una excepción
/ / No en el diccionario.
Pruebe
{
Consola.
WriteLine("For key = "TIF", value = {0}).,
abrir con【"TIF"]);
}
catch (KeyNotFoundException)
{
Consola no encontrada WriteLine("Key="TIF"));
}
//Cuando un programa a menudo tiene que probar claves con resultados fallidos
//En un diccionario, TryGetValue puede ser una forma más eficiente
//de recuperar valores.
String value="";
if(abrir con. try getvalue("TIF", valor de salida))
{
Consola. WriteLine("For key="TIF", valor = {0})., valor);
}
Otro
{
Console.WriteLine("Key="TIF")) no encontrada;
}
// ContieneKey se puede utilizar para probar la clave antes de insertarla
//Ellos.
if(!openWith.contains key("ht")
{
openWith.add("ht", "hypertrm.exe");
Console. WriteLine("valor agregado para key="ht":{ 0 }",
abrir con【"ht"]);
}
//Cuando se utiliza foreach para enumerar elementos del diccionario,
//Los elementos se recuperan como objetos KeyValuePair
Console /p>
foreach(key. par de valores y ltstring, cadena y gtkvp en openWith)
{
WriteLine("Clave = { 0 }, Valor = { 1}",
kvp. key, kvp. value);
}
//Para obtener los valores individualmente, utilice el atributo de valores.
} p>
Diccionario<string,string>.ValueCollectionValueCollection=
openWith.Values;
Los elementos de ValueCollection están fuertemente tipados
//Tiene el tipo especificado para el valor del diccionario.
Console. WriteLine();
foreach(string s in value coll)
{
Console.WriteLine. ("Value = { 0 }", s);
}
//Para obtener las claves individualmente, use el atributo de claves
KeyCollection keyColl =.
key;
Los elementos de KeyCollection están fuertemente tipados
//Tiene el tipo especificado para la clave del diccionario.
WriteLine(
foreach(String s en key coll)
{
WriteLine("Clave = { 0 }",
}
// Utilice el método Remove para eliminar un par clave/valor
Console.WriteLine("\nremove(\"doc\")");
openWith.
remove("doc");
if(!openWith.contains key("doc")
{
Console.WriteLine("Palabra clave no encontrada " doc"));
}
}
}
/*Este ejemplo de código produce el siguiente resultado:
} p>
El elemento con Key="txt" ya existe
Para key="rtf", valor = wordpad.exe
Para key=. "rtf", Valor = winword.exe.
Clave="TIF" no encontrada
Clave="ht" no encontrada: Valor agregado de hypertrm.exe. >
Clave=txt, Valor=notepad.exe
Clave=bmp, Valor=paint.exe
Clave=dib, valor=paint.exe
clave=rtf,valor=winword.exe
palabra clave=documento,valor=winword.exe
clave=ht,valor = hypertrm.exe
valor=notepad.exe
valor=paint.exe
valor=paint.exe
valor=winword .exe
Valor = winword.exe
Valor = hypertrm.exe
Clave = txt
Clave = bmp
Clave = dib
Clave = rtf
Clave = doc
Clave = ht
Eliminar("doc")
Palabra clave "doc" no encontrado
*/