IEnumerable e List em C#: o que escolher e como funcionam?
Olá! Sou iniciante em C# e frequentemente fico confuso quando preciso escolher entre IEnumerable e List. Por exemplo, escrevo um método que retorna uma lista de números do banco de dados:
```csharp
public List GetNumbers()
{
var numbers = new List();
for (int i = 0; i < 10; i++)
{
numbers.Add(i);
}
return numbers;
}
```
Mas meu colega disse que é melhor retornar IEnumerable. Não entendo por quê. Também notei que em LINQ métodos como Where() retornam IEnumerable, e ToList() transforma em List. Quando escrevo:
```csharp
var query = numbers.Where(n => n > 5);
foreach (var n in query)
{
Console.WriteLine(n);
}
```
Tudo funciona, mas não sei o que acontece "por baixo dos panos". Existe diferença de performance? É possível modificar elementos em I