Avatar ·

¿Cuál es la diferencia entre Select y SelectMany en LINQ?

¡Hola a todos! Estoy aprendiendo C# y LINQ, y no logro entender la diferencia entre los métodos Select y SelectMany. Ambos se usan para proyección de datos, pero el resultado es diferente. Tengo un modelo simple: una clase Student con un campo Name (string) y una lista Courses (List). Quiero obtener todos los cursos en los que están inscritos los estudiantes. Esto es lo que probé: ```csharp public class Student { public string Name { get; set; } public List Courses { get; set; } } var students = new List { new Student { Name = "Iván", Courses = new List { "Matemáticas", "Física" } }, new Student { Name = "María", Courses = new List { "Química", "Biología" } } }; var selectResult = students.Select(s => s.Courses); var selectManyResult = students.SelectMany(s => s.Courses); ``` Cuando imprimo selectResult, veo dos elementos — cada uno es una lista de strings. Pero selectManyResult me da cuatro strings — todos los cursos seguidos. ¿Por qué? ¿Cuál es la diferencia fundamental?