0% encontró este documento útil (0 votos)
0 vistas6 páginas

C# Dictionary

Los diccionarios son colecciones que vinculan claves únicas con valores, permitiendo un acceso rápido a los datos. Se pueden crear, modificar y leer valores a través de funciones específicas, y es importante verificar la existencia de un key antes de acceder a su valor. Además, para visualizarlos en Unity, es necesario utilizar clases serializables, ya que los diccionarios no se muestran directamente en el explorador.

Cargado por

Federico Valse
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
0 vistas6 páginas

C# Dictionary

Los diccionarios son colecciones que vinculan claves únicas con valores, permitiendo un acceso rápido a los datos. Se pueden crear, modificar y leer valores a través de funciones específicas, y es importante verificar la existencia de un key antes de acceder a su valor. Además, para visualizarlos en Unity, es necesario utilizar clases serializables, ya que los diccionarios no se muestran directamente en el explorador.

Cargado por

Federico Valse
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Dictionary

Los diccionarios son un tipo de coleccion como una lista o un array, pero que
vinculan diferentes tipo de datos. Los diccionarios contienen pares de ‘keys’
vinculados con ‘values’, esto quiere decir que para cada pabra clave,
relacionaremos un valor.

💡 Las keys de un diccionario funcionan igual que un HashSet, así que sus
valores son irrepetibles. Al guardarse mediante hashing, si tenemos por
ejemplo un int como key siempre sabemos que no va a estar repetido y
podemos consultarlo en O(1), en lugar de tener que recorrer la colección
comparando valor por valor.

💡 Tanto el key como el value pueden ser de cualquier tipo que querramos.

Sintaxis
A la hora de crear un diccionario, es similar a una lista (se utilizan tipos genericos,
y por eso los <>) , solo que debemos decirle de que tipo sera tanto el key como el

Dictionary 1
value. En el ejemplo se crea un diccionario ‘resourceTypeAmountDictionary’ con el
key tipo ‘ResourceType’ (enum) y el value en int.

Agregar y modificar valores de un key


Es importante tomar en cuenta que una vez que asignamos un valor a un key
con la funcion .Add, este ya tiene su valor asignado y no puede recibir un
segundo valor, debemos utilizar otra sintaxis para cambiar el mismo.

Si solo queremos remover un valor y dejarlo en blanco podemos hacerlo con la


funcion .Remove

Dictionary 2
Leer y checkear valores de un key
Si tratamos de leer el valor de un key que no esta asignado esto dara error, por
lo que siempre tenemos que checkear antes si el valor ya fue asignado.
Hay dos formas de hacerlo, la primera es con TryGetValue que devuelve true o
false (y el valor asignado en caso de ser true):

La segunda es utilizando la funcion .ContainsKey

Dictionary 3
Inicilaizar el diccionario con sus valores asignados
Si deseamos agregar los valores originales del diccionario cuando lo creamos,
solo debemos escribir los mismos entre {} al final de la inicializacion. Debemos
tomar en cuenta que este tipo de listas son key-value paired por lo que
debemos agrupar cada key con su value entre nuevos {}.

Loopear en los valores del diccionario


Loopear por todos los pares key-value
Para loopear entre los valores del diccionario podemos utilizar un foreach
pero debemos tomar en cuenta que en lugar de elementos de la coleccion,
tenemos que decirle que debe pasar por cada par key-value. Esto se hace
con la palabra clave KeyValuePair.

Dictionary 4
Loopear por los keys o los values individualmente
Otra alternativa para esto seria loopear por cada uno de los keys, que da el
mismo resultado:

Si no, podemos loopear por solo los values:

Como exponer en el editor de unity con una clase

💡 Unity no muestra los diccionarios en el explorador, ni auque le


pongamos el modificador [Serializefield]. Para hacer diccionarios o
vincular mas de un tipo de valores juntos, debemos hacer una clase
que contenga todos los valores que querramos agrupar con la
palabra clave [Serializable], y luego podemos hacer una lista de
estas clases (como hicimos en akakuma para el enemyManager) 👇

Dictionary 5
Opcionalmente, podemos asignar estos valores a un diccionario en el awake,
que se adaptara a las modificaciones que hagamos automaticamente:

Dictionary 6

También podría gustarte