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 ?