… De hecho en la colección de Cursos dentro del .Add() que invocamos del diccionario NO es necesario invocarlo. La razón de esto es porque no necesita su invocación debido a que Cursos es de un tipo “List<Curso>”, la cual implementa la interfaz “IEnumerable<T>”. De hecho al invocar al método .Add() de nuestro diccionario se me ocurrió añadir dentro del “Value” una lista de ObjetoEscuelaBase inicializada con un elemento, que es nuestra Escuela. De tal forma que el código me quedó de esta forma sin que el compilador me protestara por hacerlo así:
public Dictionary<string, IEnumerable<ObjetoEscuelaBase>> GetDiccionarioObjetos()
{
var diccionario = new Dictionary<string, IEnumerable<ObjetoEscuelaBase>>();
diccionario.Add("Escuela", new List<ObjetoEscuelaBase> { Escuela });
diccionario.Add("Cursos", Escuela.Cursos);
return diccionario;
}
Entiendo que el uso del Método Cast() en las colecciones sirve precisamente para convertir CADA ELEMENTO CONTENIDO de un tipo a otro.
Esto lo pueden corroborar en el libro titulado: “Training Kit - 70-516 Accessing Data With Microsoft .Net Framework 4”, Editorial Microsoft Press, pagina167, chapter 3: Undestanding Linq.
Saludos.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?