Uso del diccionario C#;

Descripción general del uso del diccionario C#

1, Uso 1: para uso diario

Antes de agregar un par clave-valor, debe determinar si la clave existe. Si la clave ya existe pero no ha sido evaluada, se generará una excepción. Por lo tanto, es muy problemático juzgar cada vez que se utiliza un método extendido en los comentarios.

¿Público? ¿Electricidad estática? ¿Vacío? DicSample1()

{

Diccionario<String,? cuerda y gt? pLista? =?¿Nuevo? Diccionario<Cadena,? String>();

Intentar

{

¿Si? (pListcontiene clave("elemento 1")?==?false)

{

pList. add("elemento 1",?"Zhejiang");

}

¿Si? (pListcontiene clave("elemento 2") ==? false)

{

pList. Add("Item2",?"Shanghai");

}

Otro

{

pList【"item 2"】 ? =?"Shanghái";

}

¿Si? (pListcontiene clave("elemento 3")?==?false)

{

pList. add("item 3",? "Beijiang");

}

}

¿Entiendes? (System.Exception?e)

{

Consola. WriteLine("Error:?{0}",?Message);

}

//Determine si existe una clave correspondiente y muéstrela.

¿Y si? (pListcontains key("elemento 1")

{

Console.WriteLine("Salida:?"?+?pList["elemento 1"]);

}

//Teclas transversales

foreach? (var? key? in? pList. key)

Consola .WriteLine("Output?Key:?{0}",?Key);

}

//Iterar sobre valores

foreach value? ? pList . valores )

{

Console .p>}

//Recorrer claves y valores

foreach ( var?dic?in?pList)

{

Control Taiwán.WriteLine("¿Salida?Clave?:?{0},?Valor?:?{1}?", ?dic.Key,?dic.Value);

}

}

2. Valor de uso 2:2: el diccionario es una matriz

///?& ltSummary& gt

/// ?El valor del diccionario es una matriz

//?</summary>

. ¿Público? DicSample2()

{

Diccionario< string[]》;?dic?=?Diccionario<string[]》;

String[]?={? ¿"Hangzhou"?};

Cadena[]?=?{?"Hangzhou"? ¿"No estás contento" };

dic.Add("ZJ",?Zhejiang) ;

dic.Add("SH",?Shanghai);

Console.WriteLine("Salida?:"?+?DIC["ZJ"][0]);

Uso 3: El valor del diccionario es una clase.

//El valor del diccionario es una clase.

¿Público? ¿Electricidad estática? ¿Vacío? DicSample3()

{

Diccionario<String,? ¿Estudiante>? Lista de estudos? =?¿Nuevo? Diccionario<Cadena,? Estudiante>();

¿Estudiante? ¿Estu? =?null

¿Para qué? (int?i?=?0;?i?<?3;?i++?)

{

¿Estu? =?¿Nuevo? estudiante();

Stu. ¿nombre? =?Yo. ToString();

Stu. ¿nombre? =?"Stunum"? +?Yo. ToString();

Estulista. add(I.ToString(),?Stu);

}

foreach? (var?student?in?stuList)

{

Consola. WriteLine("¿Salida?:?Clave?{0},?Núm?:?{1},?Nombre?{2}",?Estudiante.Clave,?Estudiante.Valor.Nombre,?Estudiante.valor.Nombre);

}

}

Clase de estudiantes:

¿Pública? ¿clase? Estudiantes

{

¿Público? ¿Cadena? ¿Número? {?¿conseguir? configuración;? }

¿Público? ¿Cadena? ¿nombre? {?¿conseguir? configuración;? }

} 4 Nota: Métodos de extensión utilizados en los diccionarios

///?& ltSummary& gt

///?Métodos de extensión utilizados en los diccionarios< /p >

///?& lt/summary & gt;

¿Público? ¿Electricidad estática? ¿Vacío? DicSample4()

{

//1) Llamada normal

Diccionario<int,? cuerda y gt? Dictado. =?¿Nuevo? diccionario<int,? String>();

DiccionarioExtensiónMetodoClase. intente agregar(dict,?1,?"Zhang San");

DictionaryExtensionMethodClass. intente agregar(dict,?2,?"Wuwang");

DictionaryExtensionMethodClass. AddOrPeplace(Dictionary,?3,?"王王");

DictionaryExtensionMethodClass. AddOrPeplace(Diccionario,?3,?"Zhang Wu");

DictionaryExtensionMethodClass. intente agregar(dict,?2,?"LiSi");

//2) intente agregar? Entonces qué. ¿Agregar o reemplazar? Estos dos métodos tienen fuertes capacidades de autodescripción y son simples y fáciles de usar:

Dict. addorplace(20, ?"orange");

dict. prueba add(21,?"banana");

dict. pruebe add(22,? "apple");

///3) Escriban juntos como Linq o jQuery.

Dickett. intente agregar(10,?"Bob")

. prueba add(11,?"Tom")

. addorplace(12,?"Jom");

///4)?Obtener valor

¿Cadena? ¿F? =?"Ba";

Dickett. prueba getvalue(31,?out?f);

Consola. WriteLine("F?:?{0}",F);

foreach? (var?dic?in?dict)

Consola. WriteLine("¿Salida?:?Clave?:?{0},?Valor?:?{1}",?dic.Clave,?dic.

value);

}

//5) El siguiente es el valor obtenido usando GetValue.

var? v1? =?Dict. GetValue(111, nulo);

var? v2? =?Dict. GetValue(10, "ABC");

//6) Agregar lotes

var? dict1? =?¿Nuevo? Diccionario<int,int>();

Diccionario1. addorplace(3,?3);

Diccionario 1. addorplace(5,?5);

var? dict2? =?¿Nuevo? diccionario<int,? int & gt();

Diccionario 2. addorplace(1,?1);

Diccionario 2. addorplace(4,?4);

Diccionario 2. AddRange(dict 1,? false);

}

La clase donde se encuentra el método de extensión.

¿Público? ¿Electricidad estática? ¿clase? DictionaryExtensionMethodClass

{

///?& ltSummary& gt

///?Intento agregar claves y valores al diccionario: si no es así existen, luego agréguelos; exista, no agregue y no arroje constantes.

///?& lt/summary & gt;

¿Público? ¿Electricidad estática? Diccionario & ltTKey? ¿Valor de TV>? ¿ProbarAgregar<TKey? TValue>(este?diccionario<TKey?TValue>?dict?TKey?key,?tvalue?value)

{

¿Si? (Diccionario.ContainsKey(clave)?==?false)

dict. Agregar (clave, ? valor);

¿Devolver? dict

}

///?& ltSummary& gt

///?Agregar o reemplazar claves y valores a un diccionario: si no es así existen, se agregan; si están presentes, se reemplazan.

///?& lt/summary & gt;

¿Público? ¿Electricidad estática? Diccionario & ltTKey? ¿Valor de TV>? ¿AgregarOrPeplace<TKey? TValue & gt (¿este? diccionario & ltTKey? TValue & gt? dict? ¿TKey? key,? t value? value)

{

¿Diccionario [Respuesta]? =?Valor;

¿Devolución? dict

}

///?& ltSummary& gt

///?Obtiene el valor asociado con la clave especificada; si no, devuelve la entrada valor predeterminado.

///?& lt/summary & gt;

¿Público? ¿Electricidad estática? ¿valor t? ObtenerValor<TKey? TValue>(this?dictionary<TKey?TValue>?dict?TKey?key,?tvalue?default)

{

¿Regresión? Dictado. ¿Contiene clave? Diccionario 【Respuesta】? :?Valor predeterminado;

}

///?& ltSummary& gt

///?Agregar pares clave-valor al diccionario en lotes< / p>

///?& lt/summary & gt;

///?& ltparam? nombre="reemplazar existió">.

Si ya existe, ¿quieres sustituir

la pública? ¿Electricidad estática? Diccionario & ltTKey? ¿Valor de TV>? ¿Agregar rango y ltTKey? TValue>(este?Diccionario<TKey?TValue>?dict?IEnumerable<Par clave-valor<TKey?TValue>>?Values?Boolean?replaceExisted)

{

foreach? (var?elementos?en?valores)

{

si? (diccionario.containskey(item.key)?==?false?||?replaceExisted)

Diccionario [item. llave】? =?proyecto. Valor;

}

¿Devolución? dictar

}

}