‫Y en esta lección, cubriremos las tablas hash y también veremos los diccionarios más adelante.
‫Así que las tablas hash y los diccionarios son algunas de las colecciones más útiles de C Sharp.
‫Entonces veremos cómo definirlos y cómo usarlos, y en cuyo caso deberíamos aprovecharlos para
‫comprender el concepto de hash y tablas.
‫Primero, piense en un diccionario real.
‫Así que supongamos que tenemos un diccionario de alemán e inglés donde cada palabra en alemán corresponde a una sola
‫palabra en inglés, porque esa sería la limitación aquí.
‫Entonces, cuando intentamos traducir la palabra auto, que en alemán básicamente se traduce como automóvil
‫en inglés, usamos una palabra como palabra clave que podemos buscar, por ejemplo, y obtenemos una traducción como
‫resultado.
‫Así que siempre existe esta relación uno a uno.
‫Entonces tenemos auto y eso se traduce en auto.
‫Y podemos lograr exactamente eso, también usando tablas hash y vamos a usar esto en un ejemplo muy específico
‫aquí.
‫Entonces, digamos que tenemos un sistema de registro de estudiantes en el que cada estudiante tiene una identificación y
‫muchos otros datos, como nombre, edad, calificaciones, fotografía, etc.
‫Para que este sistema funcione, necesitaremos una identificación especial para cada estudiante.
‫Entonces tiene que ser único.
‫Si tuviéramos que almacenar estos datos usando una tabla hash o un diccionario, la identificación del estudiante sería la clave
‫y los datos del estudiante serían un objeto que contiene toda la otra información del estudiante y ese sería el
‫valor.
‫Entonces siempre tenemos este par clave-valor.
‫Bien, así es como puede encontrar los datos reales, por así decirlo, y este es el valor que hay detrás.
‫Entonces puedes verlo como un casillero.
‫Así que esta es la idea del casillero o la ubicación del casillero.
‫Pueden ser diferentes tipos de datos.
‫No tiene que ser una identificación y este será el valor.
‫Entonces, el diccionario debe ser del mismo tipo en una tabla hash.
‫Pueden ser de diferentes tipos.
‫Entonces, esto podría ser un número entero y esto podría ser un objeto, por ejemplo.
‫Así que primero veremos las tablas hash.
‫Por lo tanto, vamos a crear una nueva clase o, de hecho, he preparado una nueva clase para esto.
‫Dejémoslo aquí.
‫Y tiene un par de propiedades.
‫Tiene una propiedad de identificación, una propiedad de nombre y el GPA.
‫Y luego tenemos un constructor muy simple que simplemente asigna el valor.
‫Entonces, cualquier ID que pasemos al objeto de estudiante cuando lo creemos será la ID de ese objeto de estudiante y
‫así sucesivamente.
‫De acuerdo, no hay nada demasiado lujoso aquí.
‫Solo estamos usando una clase normal como hemos cubierto en el capítulo de la clase.
‫Ahora, por supuesto, podríamos seguir adelante y crear esta clase en un archivo separado para
‫poder seguir adelante y abrir nuestro explorador de soluciones.
‫Continúe y cree un nuevo archivo aquí.
‫Así que agregue un nuevo elemento o una nueva clase como la escuela y el estudiante universitario.
‫Pero para este ejemplo, lo mantendré simple y lo pondré en un archivo.
‫Como sabe, es una buena práctica ponerlo en un archivo separado para que no esté mezclando cosas y
‫pueda encontrar más fácilmente archivos y clases y todo eso.
‫Bien, ahora que tenemos nuestra clase de estudiantes, podemos seguir adelante y crear una tabla hash.
‫OK, entonces dentro de nuestro programa aquí, en el método principal, ahí es donde
‫voy a definir una nueva tabla hash y será como, entonces tabla hash y voy a llamar a esta tabla, que
‫será nueva tabla hash.
‫La clase de tabla hash está dentro de las colecciones del sistema, por lo que debemos agregar este espacio de nombres aquí usando
‫el sistema que recopila, por lo que la tabla hash y es diferente al espacio de nombres de las tablas hash
‫porque así es como llamé a my, lo que podría confundir nuestra idea aquí si queremos para ingresar a la tabla hash sin tener este
‫espacio de nombres agregado a nuestro proyecto.
‫Pero ahora que lo tenemos dentro de nuestra clase de programas, podemos usarlo.
‫Entonces tenemos esta nueva tabla hash, que ahora será una tabla de datos y podemos poner los datos que queramos
‫allí.
‫Entonces, así es como puede crear una tabla hash de este tipo, cómo puede inicializarla con un objeto de tabla hash como
‫lo hicimos aquí.
‫Así que ahora lo que podemos hacer es asignar valores a esta tabla hash e incluso podríamos llamarla tabla de estudiantes
‫para que nuestro código sea un poco más legible.
‫Así que ahora solo necesitamos crear un grupo de estudiantes que queremos tener en nuestra mesa.
‫Permítanme agregarlos aquí también.
‫Voy a llamarlos Studd one start two to three to four, y todos serán nuevos objetos de estudiantes.
‫Entonces aquí este será el estudiante con la identificación.
‫Uno será Maria Chiasm GPA de 98.
‫Y tenemos a Jason, que tendrá la idea de uno.
‫Esta es esta idea, el identificador único, por así decirlo, y luego el GPA que tienen los estudiantes.
‫Bien, ahora tenemos a todos esos estudiantes y podemos asignarlos a nuestra mesa de estudiantes usando la identificación del
‫estudiante.
‫Y la buena práctica sería seguir adelante y mantener a los estudiantes en la mesa que agregan.
‫Y aquí solíamos robarme uno. D. Así que este de aquí, la propiedad como clave.
‫Entonces, puede ver aquí una tabla hash que nos permite tener un objeto de tipo key off, por lo que puede
‫ser cualquier tipo de objeto como clave y puede ser un objeto opcional o anulable tiene el valor para que podamos asignar un valor que
‫puede ser nulo , pero le vamos a asignar un valor y ese será el propio alumno como tal.
‫Bien, ahora agregamos a nuestro estudiante uno a la mesa de nuestros estudiantes y podemos hacer lo mismo con los otros
‫estudiantes y usaremos su identificación para cada uno de ellos.
‫Así que usemos la tabla de estudiantes aquí para todos los archivos.
‫Bien, esa es nuestra tabla hash ahora.
‫Pero, ¿cómo podemos recuperar las entradas, entonces, cómo podemos recuperar las entradas de nuestra tabla hash?
‫Bueno, veamos diferentes formas de hacerlo.
‫Entonces, lo primero que podemos hacer es crear un objeto de estudiante aquí.
‫Entonces estudiante y este objeto se llamarán estudiante almacenado.
‫De acuerdo, voy a obtener el valor del estudiante de mi tabla.
‫Entonces, en este caso, es la mesa de estudiantes.
‫Los estudiantes juegan así.
‫Y aquí, de manera similar a cómo hago ejercicio en una matriz, cómo X es un valor en una matriz, puedo acceder a él mediante
‫una ID.
‫Así que aquí, por ejemplo, digamos que quiero conseguir el de Idy uno así.
‫Entonces, aquí el problema es que esta tabla hash puede tener valores que son de tipo objeto.
‫Correcto, como vimos antes.
‫Entonces, aquí, si seguimos adelante y llamamos al método ADD, puede ver que podemos asignar una clave, pero entonces el valor
‫será de tipo objeto.
‫Y eso significa que este aquí será de tipo objeto.
‫Pero no podemos asignar solo un tipo de objeto al alumno.
‫Tiene que ser de tipo alumno porque este alumno es en realidad de tipo alumno.
‫De acuerdo, debemos asegurarnos de enviarlo a un estudiante aquí y luego esto funcionará.
‫Bien, estamos lanzando este objeto a un estudiante porque sabemos que está dentro de la mesa del estudiante en
‫la posición uno.
‫Entonces, en el ID uno, el valor será de hecho del tipo estudiante.
‫De acuerdo, aquí puede obtener el estudiante en uno, también puede obtener la identificación del estudiante y así sucesivamente.
‫Pero eso solo funciona porque sabemos que, de hecho, estamos usando estos números.
‫Entonces, si desea obtenerlo, de lo contrario, puede usar uno por ID.
‫Entonces, esto le dará el valor detrás de la identificación del estudiante.
‫Entonces esto básicamente le dará este valor.
‫Aquí está el estudiante aquí.
‫Y es este para ser precisos, así que este de aquí, porque eso es lo que estamos almacenando en este.
‫Así que ahora podemos seguir adelante y hacer algo como esto donde ahora, en lugar de Friday Hello World, vamos a escribir algo
‫útil, donde escribimos al estudiante I. D. , el nombre del estudiante, así
‫como su GPA.
‫Así que usaremos la identificación de un pensamiento del estudiante.
‫Entonces obtenemos su identificación, obtenemos su nombre y obtenemos su GPA y en este caso como su GPA y así sucesivamente, porque
‫es Marea en la posición uno lo que quiero.
‫Bien, ejecutemos esto y podrá ver las identificaciones de los estudiantes.
‫Un nombre es Maria Antipas, 98.
‫Entonces aquí vimos cómo podemos crear una tabla hash.
‫Así es como podemos almacenar datos y luego tablas hash.
‫En realidad, aquí es donde almacenamos los datos y una tabla hash.
‫Y así es como podemos recuperar datos de una tabla hash.
‫Entonces, supongamos que queremos imprimir todos los datos dentro de nuestra tabla hash y no tenemos una
‫clave en particular a nuestra disposición.
‫Simplemente podemos hacer eso obteniendo todas las claves de nuestra tabla hash para resolver esto.
‫Primero, tenemos que discutir una estructura llamada entrada de diccionario cada vez que agregamos una nueva entrada a nuestra tabla
‫hash.
‫Entonces, nuestro par de valores clave y el nuevo objeto de entrada de diccionario se crearán para nosotros y se insertarán en
‫nuestra tabla hash, lo que significa que una tabla hash es básicamente una colección de entradas de diccionario.
‫Entonces, usando un objeto temporal de entrada de diccionario, podemos revisar nuestra tabla hash usando un para cada ciclo.
‫Así que veamos esto en este ejemplo particular aquí donde voy a seguir adelante y usarlo para cada bucle
‫aquí.
‫Y esto para cada tipo de bucle será la entrada del diccionario.
‫Esa es la estructura de la que estaba hablando.
‫Puede ver aquí la entrada del diccionario de estructura.
‫Entonces, ¿cuál es el nombre del elemento que voy a usar?
‫Voy a usar la entrada.
‫Eso sí, puedes llamar al alumno o lo que sea, porque sabes que las entradas serán de tipo
‫alumno.
‫Pero digamos que no lo sabe.
‫También puede llamarlo entrada.
‫Y luego, ¿cuál es la colección en la que queremos ejecutar esto o de la que queremos obtener los valores?
‫Y esa será la mesa de nuestros estudiantes.
‫Así que este recupera.
‫Artículo individual con identificación conocida.
‫Y aquí.
‫Recupere todos los valores de una tabla hash.
‫Bien, una entrada dentro de nuestra tabla hash es de tipo entrada de diccionario, como acabo de decir.
‫Entonces esto nos permite ahora pasar por esto.
‫Haga una tabla de la tabla de estudiantes y básicamente muestre los valores aquí, porque la entrada, el valor devolverá un objeto que puede ver
‫aquí, dice objeto, pero lo que queremos para obtener los detalles del estudiante será un
‫objeto de estudiante.
‫Lo que tendremos que hacer es hacer lo siguiente para crear un valor temporal, que será nuestro
‫valor de entrada.
‫Ahora tenemos el mismo problema que tuvimos aquí, de acuerdo, donde tenemos que transmitir esto a un estudiante porque es solo
‫un objeto.
‫Derecha.
‫Pero queremos que sea de tipo estudiantes para que podamos acceder a las propiedades de los estudiantes.
‫Entonces, porque de lo contrario, el valor de entrada pensó que no lo tenía aquí.
‫No puedo acceder a su ID, no puedo acceder a su nombre, todas esas cosas, aunque existe allí.
‫Pero nuestra identificación simplemente no permite eso porque primero debemos asegurarnos de convertir o convertir el valor en el
‫tipo correcto, que será nuestro alumno tipo.
‫Así que ahora lo estamos lanzando.
‫Lo estamos almacenando temporalmente y ahora podemos seguir adelante y escribir los valores individuales en nuestra consola, por ejemplo,
‫o usarlos en nuestro programa como queramos.
‫Entonces, aquí podemos usar la identificación del estudiante usando la identificación temporal porque la temperatura ahora es del tipo estudiante y el estudiante
‫tiene una identificación, un nombre GPA y podemos acceder a todos ellos para ahora iterar a través de la lista completa de todos nuestros estudiantes.
‫Así que hagámoslo muy rápido.
‫Ejecutemos nuestro código y veamos qué hace esto para cada grupo por nosotros.
‫Entonces puedes ver que lo atraviesa.
‫Dice estudiante para Steve.
‫Estudiante tres Sclera.
‫El estudiante dos es Jason y el otro es María.
‫Entonces, a medida que va de atrás a pozo, comienza en la última entrada y sube hasta la primera entrada.
‫Ahora, eso es si en este punto no sabemos si es un estudiante, aunque ya lo estamos convirtiendo
‫en un estudiante, esto es realmente solo para mostrarle que una tabla hash es en realidad solo una colección de entradas
‫de diccionario.
‫Así que veamos cómo podemos simplificar esto para cada grupo.
‫Podemos simplificar diciendo que para cada palabra un tipo de variable será un estudiante.
‫El nombre del artículo.
‫Bueno, podrías llamarlo estudiante.
‫Solo lo llamaré valor como.
‫Así que está bien.
‫Y la colección por la que quiero pasar se tomará mientras los estudiantes muestren los valores de los puntos.
‫Entonces, existe esta colección I de valores de la tabla hash, por lo que obtiene una colección de ojos que contiene los valores en
‫la tabla hash.
‫Entonces esto nos permite revisar los valores directamente sin tener que hacerlo.
‫Básicamente, haga lo que hicimos aquí, dónde lo convertimos o dónde lo convertimos en un objeto de estudiante.
‫Así que ahora podemos seguir adelante y.
‫Haga lo mismo que hicimos aquí, pero ahora, por supuesto, va a ser valioso que yo. D. y así sucesivamente, porque no es una
‫entrada y no es 10, pero va a ser, de hecho, valor, está bien, porque eso es lo que
‫es esto para cada nuevo.
‫Nos da para cada iteración, donde pasa por todos los valores que tenemos y los
‫valores serán el valor individual que estamos buscando actualmente para esa iteración en particular.
‫Entonces, en la primera iteración, lo será.
‫Steve, entonces será minucioso, luego Jason y Maria.
‫Bien, entonces si nos deshacemos de esta línea aquí o esta para cada ciclo y la ejecutamos nuevamente, veremos que obtenemos
‫los mismos resultados.
‫Entonces, Steve, Chloro Jason y Maria.
‫De acuerdo, esa fue una introducción rápida a las tablas hash y el siguiente video, tendré un pequeño
‫desafío para ti en el que básicamente extenderás tu código un poco para comprender un poco mejor las tablas hash.
‫Y luego veremos los diccionarios.