¿Cómo actualizar el valor de una clave específica en un diccionario Dictionary<string, int>
?cómo actualizar el valor almacenado en Dictionary in C#?
Respuesta
Sólo punto al diccionario en dado clave y asignar un nuevo valor:
myDictionary[myKey] = myNewValue;
Es posible acceder a la clave como índice de
por ejemplo:
Dictionary<string, int> dictionary = new Dictionary<string, int>();
dictionary["test"] = 1;
dictionary["test"] += 1;
Console.WriteLine (dictionary["test"]); // will print 2
Si no hay un elemento "prueba" en la Lista, entonces liste ["prueba"] = lista ["prueba"] + 1; elevará KeyNotFoundException! La asignación pura de un indexador no existente funcionará. lista ["prueba"] = 1; –
¿También puede usar list ["test"] ++ ;? – aufty
no llame a una lista de diccionarios, llámele perros o gatos o dict – user3800527
Aquí es una forma de actualizar por un índice muy similar a foo[x] = 9
donde x
es una clave y 9 es el valor
var views = new Dictionary<string, bool>();
foreach (var g in grantMasks)
{
string m = g.ToString();
for (int i = 0; i <= m.Length; i++)
{
views[views.ElementAt(i).Key] = m[i].Equals('1') ? true : false;
}
}
la m [i] .Equals ('1') ya se evalúa como un bool, por lo que agrega? verdadero: falso no es necesario –
No sé cuán eficiente es esta lógica, pero me gusta la idea del bucle For. :) –
Puede seguir este enfoque:
void addOrUpdate(Dictionary<int, int> dic, int key, int newValue)
{
int val;
if (dic.TryGetValue(key, out val))
{
// yay, value exists!
dic[key] = val + newValue;
}
else
{
// darn, lets add the value
dic.Add(key, newValue);
}
}
El borde se obtiene aquí es que compruebe y obtener el valor de la tecla correspondiente en tan sólo 1 Acceso al diccionario. Si usa ContainsKey
para verificar la existencia y actualiza el valor usando dic[key] = val + newValue;
, entonces está accediendo al diccionario dos veces.
En lugar de 'dic.Add (clave, newValue);' puede usar use 'dic [key] = newvalue;'. – Macke
¿Qué sucede si haces "dic [key] = value" y "key" no existe? – superpuccio
@superpuccio recibe una KeyNotFoundException – ntroncos
uso de LINQ: El acceso a Inglés para la llave y cambiar el valor
Dictionary<string, int> dict = new Dictionary<string, int>();
dict = dict.ToDictionary(kvp => kvp.Key, kvp => kvp.Value + 1);
Ni siquiera entiendo cómo funciona esto, pero es increíble – hexagonest
La creación de otro diccionario no tiene sentido para mí por algo tan simple. Verifique la respuesta de ccalboni. – RollerCosta
creo que es una buena respuesta. no requiere que sepas cada cadena clave –
- 1. Dictionary/HashTable Object in C++?
- 2. Pymongo Query with Dictionary in Dictionary?
- 3. ¿Cómo actualizar el valor de una clave en el diccionario en C#?
- 4. C# Dictionary Memory Management
- 5. Tecla siguiente en C# Dictionary
- 6. C# Array or Dictionary?
- 7. C# Dictionary to .csv
- 8. SQL: cláusula in en procedimiento almacenado: cómo pasar valores
- 9. C# Data Structure Like Dictionary pero sin un valor
- 10. C# Dictionary usando TValue dentro de otro Dictionary
- 11. C# Dictionary Performance
- 12. C# Dictionary of arrays
- 13. C# Shallow copy Dictionary?
- 14. Procedimiento almacenado de Oracle con parámetros para la cláusula IN
- 15. Seleccionar y actualizar en un procedimiento almacenado
- 16. Actualizar un procedimiento almacenado en el marco de entidad 3.5
- 17. Cómo recuperar el valor escalar del procedimiento almacenado (ADO.NET)
- 18. Obtener valor de retorno de procedimiento almacenado en C#
- 19. ¿Cómo actualizar el campo para agregar valor al valor existente?
- 20. convertir HashTable a Dictionary en C#
- 21. Cómo actualizar el valor de los datos en jqgrid
- 22. Diferencia de Dictionary.Add vs Dictionary [tecla] = valor
- 23. ¿Cómo funciona SavedState Dictionary en el instalador?
- 24. Devuelve el valor de un proceso almacenado en el error
- 25. MS SQL: Suprime el valor devuelto del procedimiento almacenado llamado en el procedimiento almacenado
- 26. Cómo convertir Dictionary <string, object> a Dictionary <string, string> en C#
- 27. Serialización y deserialización V.Large Dictionary en C#
- 28. ¿Cómo insertar valores en C# Dictionary en instanciación?
- 29. Cómo obtener el valor devuelto de un procedimiento almacenado
- 30. ¿Cómo actualizar el valor de la variable en xslt?
Esta debe ser la respuesta a la pregunta !!! –
Por lo que este método simple parece ser también un mejor sustituto del bien conocido método ".Add" y ".TryGetValue" sin la necesidad de cambiar el valor. (?) Al menos, si no importa sobrescribir claves, por ejemplo, en una situación en la que no está excluido, las claves se escriben más de una vez en un bucle. ¿O alguien ve alguna desventaja? Especialmente porque .Add tiene el ptifall para principiantes que si se olvida el if-wrapper o TryGetValue, puede funcionar bien en las pruebas y con otros datos de prueba donde el .Add se invoca dos veces para la misma clave arrojará una excepción. – Philm
el punto interesante de esta operación es que, UPSERT (clave, valor) en el diccionario. ¡brillante! – Soren