¿Cuál es la diferencia entre el método Dictionary.Add
y el indexador Dictionary[key] = value
?Diferencia de Dictionary.Add vs Dictionary [tecla] = valor
Respuesta
Agregar -> Agrega un elemento al diccionario si el elemento ya existe en el diccionario se lanzará una excepción.
Indexador o Dictionary[Key]
=>Agregar o actualizar. Si la clave no existe en el diccionario, se agregará un nuevo elemento. Si la clave existe, el valor se actualizará con el nuevo valor.
dictionary.add
añadirá un nuevo elemento al diccionario, dictionary[key]=value
establecerá un valor a una entrada existente en el diccionario contra una llave. Si la clave no está presente, entonces (indexador) agregará el elemento en el diccionario.
Dictionary<string, string> dict = new Dictionary<string, string>();
dict.Add("Test", "Value1");
dict["OtherKey"] = "Value2"; //Adds a new element in dictionary
Console.Write(dict["OtherKey"]);
dict["OtherKey"] = "New Value"; // Modify the value of existing element to new value
Console.Write(dict["OtherKey"]);
En el ejemplo anterior, en primer lugar dict["OtherKey"] = "Value2";
añadirá un nuevo valor en el diccionario, ya que no existe, y en segundo lugar que se va a modificar el valor a nuevo valor.
dictionary.add
agregue un elemento al diccionario, mientras que dictionary[key]=value
asigna un valor a una clave ya existente.
'dictionary [key] = value' agrega la clave y el valor si la clave no existe. así que es un ** Agregar o actualizar ** forma –
Dictionary.Add
arroja una excepción si la clave ya está presente. []
cuando se usa para configurar un elemento no lo hace (lo hace si intenta acceder para leerlo).
x.Add(key, value); // will throw if key already exists or key is null
x[key] = value; // will throw only if key is null
var y = x[key]; // will throw if key doesn't exists or key is null
Gracias Xanatos. – rsg
El comportamiento es idéntico cuando la clave no existe en el diccionario: el elemento se agregará en ambos casos.
El comportamiento difiere cuando la clave ya existe. dictionary[key] = value
actualizará el valor asignado a la clave, mientras que dictionary.Add(key, value)
arrojará una excepción ArgumentException.
La documentación para Add
hace esto muy claro, me siento:
También se puede utilizar la propiedad
Item
añadir nuevos elementos estableciendo el valor de una clave que no existe en elDictionary(Of TKey, TValue)
; por ejemplo,myCollection[myKey] = myValue
(en Visual Basic,myCollection(myKey) = myValue
). Sin embargo, si la clave especificada ya existe en elDictionary(Of TKey, TValue)
, establecer la propiedad Item sobrescribe el valor anterior. Por el contrario, el métodoAdd
arroja una excepción si ya existe un valor con la clave especificada.
(Tenga en cuenta que la propiedad Item
se corresponde con el indexador.)
Siempre es conveniente consultar la documentación antes de preguntar ...
- 1. Override Dictionary.Add
- 2. Tecla siguiente en C# Dictionary
- 3. Hashtable vs Dictionary
- 4. C# dictionary ¿Cómo agregar valores múltiples para una sola clave?
- 5. HttpRuntime Caché vs. static dictionary/fields
- 6. StringDictionary vs Dictionary <string, string>
- 7. High Runtime for Dictionary.Add para una gran cantidad de elementos
- 8. A diferencia de estilo: IDictionary vs Diccionario
- 9. ¿Por qué Dictionary.Add sobrescribe todos los elementos en mi diccionario?
- 10. .NET: switch vs dictionary para claves de cadena
- 11. ExpandoObject vs. Dictionary desde un punto de vista de rendimiento?
- 12. ¿Cómo actualizar el valor de una clave en el diccionario en C#?
- 13. Asp.net - Caching vs Static Variable para almacenar un Dictionary
- 14. Diferencia entre DictionaryBase y Dictionary <Tkey,Tvalue>
- 15. SkipList <T> vs Dictionary <TKey,TValue>
- 16. ¿Cuál es la diferencia entre Hashtable y Dictionary?
- 17. Cuál es la diferencia principal entre Dictionary y Hashtable
- 18. Pymongo Query with Dictionary in Dictionary?
- 19. Dictionary o KeyedCollection?
- 20. C# Dictionary usando TValue dentro de otro Dictionary
- 21. C# Data Structure Like Dictionary pero sin un valor
- 22. cómo actualizar el valor almacenado en Dictionary in C#?
- 23. Diferencia entre valor y valor de elemento
- 24. Dictionary = Hash?
- 25. Reversible dictionary for python
- 26. ¿Cuál es la diferencia entre() vs [] vs {}?
- 27. Valor predeterminado de UpdateSourceTrigger vs PropertyChanged?
- 28. ¿Cómo heredo de Dictionary?
- 29. Python dictionary - binary search for a key?
- 30. C# Dictionary Memory Management
Y cuando la clave no existe en 'dictionar [clave ] = valor'? –
@HenkHolterman, se agregará en el diccionario con la nueva clave – Habib
Thaks Habib. pero podemos agregar una nueva clave con dictionar [newkey] = value. ¿Cuál es el mejor? – rsg