Creación y Manejo de Diccionarios en C# para Aplicaciones Escolares
Clase 16 de 35 • Curso de C# con .Net Core 2.1
Contenido del curso
- 2

Reutilización de Código en C y Programación Orientada a Objetos
10:30 - 3

Herencia y Polimorfismo en Programación Orientada a Objetos
11:42 - 4

Polimorfismo en Programación Orientada a Objetos
13:17 - 5

Polimorfismo en Programación: Uso y Errores Comunes en Visual Studio
07:09 - 6

Validación y Conversión de Tipos en C# para Gestión de Objetos Escuela
12:44 - 7

Sobrescritura de Método ToString para Depuración Eficiente
08:15
- 11

Manejo Avanzado de Métodos y Parámetros en Programación
15:43 - 12

Manejo de Parámetros de Salida en Visual Studio Code
04:38 - 13

Sobrecarga de Métodos para Parámetros de Salida Opcionales
05:51 - 14

Optimización de Listas: Buenas Prácticas en C#
04:16 - 15

Uso de Diccionarios en C# para Gestión de Datos en Aplicaciones
11:15 - 16

Creación y Manejo de Diccionarios en C# para Aplicaciones Escolares
10:48 - 17

Uso de Constantes y Enumeraciones para Optimizar Diccionarios en C#
11:34 - 18

Creación y Manejo de Diccionarios en C# para Gestión Escolar
13:47 - 19

Impresión de Diccionarios en Visual Studio con C#
09:37 - 20

Filtrado y Personalización de Impresión en C#
11:47 - 21

Uso del operador switch en Visual Studio para optimizar código
14:30 - 22

Optimización de Algoritmos y Eventos en C#
12:52 - 23

Diccionarios y Refactoring en Programación Básica
02:13
- 24

Consultas y Reportes en Proyectos C# Básicos
11:42 - 25

Generación segura de reportes en sistemas de información
10:21 - 26

Generación de Reportes en Visual Studio Code
11:48 - 27

Creación de Reporte de Evaluaciones por Asignatura en Programación OO
08:32 - 28

Creación de Reportes Complejos con LinQ en Visual Studio
10:52 - 29

Cálculo del Promedio de Notas Agrupadas por Alumno y Asignatura
10:47 - 30

Creación de Tipos de Datos Personalizados en Programación Avanzada
12:05 - 31

Generación de Reportes con LINQ en C#
02:09
¿Cómo implementar un diccionario para nuestra aplicación en C#?
La implementación de un diccionario en el contexto de una aplicación de escuela puede sonar compleja al principio, pero te prometo que al final de esta guía habrá quedado mucho más claro. Vamos a explorar cómo crear un diccionario en C# que haga sentido para representar tipos de objetos dentro de una escuela, como escuelas, cursos y más.
¿Cómo creamos el diccionario en C#?
El propósito es establecer una estructura donde las claves son string y los valores son una serie de objetos de un tipo genérico conocido como IEnumerable<ObjetoEscuelaBase>. Para ello, comenzaremos definiendo las bases de nuestro método.
public Dictionary<string, IEnumerable<ObjetoEscuelaBase>> GetDiccionarioDeObjetos()
{
var diccionario = new Dictionary<string, IEnumerable<ObjetoEscuelaBase>>();
var escuela = new ObjetoEscuela(); // Asumiendo que ya está inicializado
diccionario.Add("Escuela", new[] { escuela });
// Agregar cursos
var cursos = new List<Curso>(); // Asumiendo que ya fue llenada con cursos
diccionario.Add("Cursos", cursos.Cast<ObjetoEscuelaBase>());
return diccionario;
}
¿Cuál es la lógica detrás del uso de diccionarios?
El concepto aquí es simple: asociar una clave con un valor, donde la clave es un string (por ejemplo, "Escuela") y el valor es una lista de objetos. Sin embargo, debido a las compatibilidades y herencias en C#, no podemos asignar una lista de un tipo directamente a una lista de un tipo padre sin realizar un cast explícito.
¿Por qué usar IEnumerable y casting?
La elección de IEnumerable como tipo genérico hace que nuestro código sea más flexible.
- Flexibilidad: Exponemos una interfaz genérica de lista que puede aceptar distintos tipos de colecciones.
- Casting: Convertir explícitamente, mediante
Cast<T>, te asegura que los tipos son compatibles, ya que el polimorfismo no alcanza para realizar esta conversión de manera implícita.
¿Cómo manejamos errores comunes con las claves del diccionario?
Una de las trampas clásicas al manipular diccionarios es la duplicidad de las claves. En C#, cada clave debe ser única. Si intentas agregar una clave que ya existe, el programa lanzará una excepción.
Por ejemplo:
diccionario.Add("Cursos", cursos.Cast<ObjetoEscuelaBase>());
diccionario.Add("Cursos", otroGrupoDeCursos.Cast<ObjetoEscuelaBase>()); // Esto genera un error
¿Estado final del diccionario?
El diccionario final debe tener una estructura donde cada tipo de objeto esté agrupado bajo una clave específica, lo que facilita la recuperación y manipulación de las colecciones dentro de nuestra aplicación de escuela.
Te animo a que sigas explorando las posibilidades de manipular datos y estructuras, ya que tener esta claridad inicial te permitirá crear programas más robustos y eficaces. ¡No te detengas aquí y sigue aprendiendo sobre C# y la gestión de colecciones!