Avatar ·

Quelle est la différence entre Select et SelectMany dans LINQ ?

Bonjour à tous ! J'apprends C# et LINQ, et je n'arrive pas à comprendre la différence entre les méthodes Select et SelectMany. Les deux sont utilisées pour la projection de données, mais le résultat est différent pour une raison. J'ai un modèle simple : une classe Student avec un champ Name (string) et une liste Courses (List). Je veux obtenir tous les cours auxquels les étudiants sont inscrits. Voici ce que j'ai essayé : ```csharp public class Student { public string Name { get; set; } public List Courses { get; set; } } var students = new List { new Student { Name = "Иван", Courses = new List { "Математика", "Физика" } }, new Student { Name = "Мария", Courses = new List { "Химия", "Биология" } } }; var selectResult = students.Select(s => s.Courses); var selectManyResult = students.SelectMany(s => s.Courses); ``` Quand j'affiche selectResult, je vois deux éléments — chacun est une liste de strings. Alors que selectManyResult me donne quatre strings — tous les cours à la suite. Pourquoi cela ? Quelle est la différence fondamentale ?