valor obtener modificar iterar ejemplos diccionario c# dictionary key

c# - modificar - obtener el valor del diccionario por clave



modificar valor diccionario c# (9)

¿Por qué no usar el nombre de la tecla en el diccionario? C # tiene esto:

Dictionary<string, string> dict = new Dictionary<string, string>(); dict.Add("UserID", "test"); string userIDFromDictionaryByKey = dict["UserID"];

Si miras la sugerencia de sugerencia:

¿Cómo puedo obtener el valor del diccionario por la tecla en la función?

mi código de función es esto (y el comando lo intento pero no funcionó):

static void XML_Array(Dictionary<string, string> Data_Array) { String xmlfile = Data_Array.TryGetValue("XML_File", out value); }

mi código de botón es esto

private void button2_Click(object sender, EventArgs e) { Dictionary<string, string> Data_Array = new Dictionary<string, string>(); Data_Array.Add("XML_File", "Settings.xml"); XML_Array(Data_Array); }

Quiero algo como esto:
en la función XML_Array para ser
cadena xmlfile = Settings.xml


Aquí hay un ejemplo que uso en mi código fuente. Obtengo clave y valor del Diccionario del elemento 0 al número de elementos en mi Diccionario. Luego llene mi matriz de cadena [] que envío como parámetro después en mi función, que acepta solo cadena de parámetros []

Dictionary<string, decimal> listKomPop = addElements(); int xpopCount = listKomPop.Count; if (xpopCount > 0) { string[] xpostoci = new string[xpopCount]; for (int i = 0; i < xpopCount; i++) { /* here you have key and value element */ string key = listKomPop.Keys.ElementAt(i); decimal value = listKomPop[key]; xpostoci[i] = value.ToString(); } ...

Espero que esto te ayude a ti y a los demás. Esta solución también funciona con SortedDictionary.

Saludos cordiales,

Ozren Sirola


Así no es como funciona TryGetValue . Devuelve true o false según se encuentre o no la clave, y establece su parámetro de out en el valor correspondiente si la clave está allí.

Si desea verificar si la clave está allí o no y hacer algo cuando falta, necesita algo como esto:

bool hasValue = Data_Array.TryGetValue("XML_File", out value); if (hasValue) { xmlfile = value; } else { // do something when the value is not there }


Es tan simple como esto:

String xmlfile = Data_Array["XML_File"];

Tenga en cuenta que si el diccionario no tiene una clave que sea igual a "XML_File" , ese código emitirá una excepción. Si desea verificar primero, puede usar TryGetValue de esta manera:

string xmlfile; if (!Data_Array.TryGetValue("XML_File", out xmlfile)) { // the key isn''t in the dictionary. return; // or whatever you want to do } // xmlfile is now equal to the value


Utilizo un método similar a dasblinkenlight''s en una función para devolver un único valor de clave de una cookie que contiene una matriz JSON cargada en un diccionario de la siguiente manera:

/// <summary> /// Gets a single key Value from a Json filled cookie with ''cookiename'',''key'' /// </summary> public static string GetSpecialCookieKeyVal(string _CookieName, string _key) { //CALL COOKIE VALUES INTO DICTIONARY Dictionary<string, string> dictCookie = JsonConvert.DeserializeObject<Dictionary<string, string>> (MyCookinator.Get(_CookieName)); string value; if (dictCookie.TryGetValue( _key, out value)) { return value; } else { return "0"; } }

Donde "MyCookinator.Get ()" es otra función de Cookie simple obteniendo un valor global de cookies http.


private void button2_Click(object sender, EventArgs e) { Dictionary<string, string> Data_Array = new Dictionary<string, string>(); Data_Array.Add("XML_File", "Settings.xml"); XML_Array(Data_Array); } static void XML_Array(Dictionary<string, string> Data_Array) { String xmlfile = Data_Array["XML_File"]; }


Dictionary<String,String> d = new Dictionary<String,String>(); d.Add("1","Mahadev"); d.Add("2","Mahesh"); Console.WriteLine(d["1"]);// it will print Value of key ''1''


static String findFirstKeyByValue(Dictionary<string, string> Data_Array, String value) { if (Data_Array.ContainsValue(value)) { foreach (String key in Data_Array.Keys) { if (Data_Array[key].Equals(value)) return key; } } return null; }


static void XML_Array(Dictionary<string, string> Data_Array) { String value; if(Data_Array.TryGetValue("XML_File", out value)) { ... Do something here with value ... } }