Avatar ·

Qual é a diferença entre Select e SelectMany no LINQ?

Olá a todos! Estou aprendendo C# e LINQ, e não consigo entender a diferença entre os métodos Select e SelectMany. Ambos parecem ser usados para projeção de dados, mas o resultado é diferente. Eu tenho um modelo simples: uma classe Student com um campo Name (string) e uma lista de Courses (List). Quero obter todos os cursos em que os estudantes estão matriculados. Aqui está o que tentei: ```csharp public class Student { public string Name { get; set; } public List Courses { get; set; } } var students = new List { new Student { Name = "Ivan", Courses = new List { "Matemática", "Física" } }, new Student { Name = "Maria", Courses = new List { "Química", "Biologia" } } }; var selectResult = students.Select(s => s.Courses); var selectManyResult = students.SelectMany(s => s.Courses); ``` Quando exibo selectResult, vejo dois elementos — cada um é uma lista de strings. Já selectManyResult me dá quatro strings — todos os cursos em sequência. Por que isso? Qual é a diferença fundamental?