Qual é a diferença entre Select e SelectMany no LINQ?
Olá a todos! Comecei a estudar LINQ e não consigo entender a diferença entre os métodos Select e SelectMany. Li a documentação, mas os exemplos são meio abstratos.
Eu tenho uma classe simples:
```csharp
public class Student
{
public string Name { get; set; }
public List Grades { get; set; }
}
```
E uma lista de estudantes:
```csharp
var students = new List
{
new Student { Name = "Ivan", Grades = new List { 5, 4, 3 } },
new Student { Name = "Maria", Grades = new List { 4, 5, 5 } }
};
```
Quando eu escrevo:
```csharp
var result = students.Select(s => s.Grades);
```
Eu obtenho uma coleção de duas listas. E o que acontece com SelectMany? Parece a mesma coisa, mas não exatamente. Eu tentei:
```csharp
var result2 = students.SelectMany(s => s.Grades);
```
E obtive apenas uma coleção de números. Mas para que serve então o SelectMany? Em quais situações reais devo usá-lo? Ou é apenas açúcar sintático?
Explique por favor com exemplos simples, quando
No answers yet.
Faça login para deixar uma resposta