IEnumerable und List in C#: Was wählen und wie funktionieren sie?
Hallo! Ich bin neu in C# und bin oft verwirrt, wenn ich zwischen IEnumerable und List wählen muss. Zum Beispiel schreibe ich eine Methode, die eine Liste von Zahlen aus der Datenbank zurückgibt:
```csharp
public List GetNumbers()
{
var numbers = new List();
for (int i = 0; i < 10; i++)
{
numbers.Add(i);
}
return numbers;
}
```
Aber mein Kollege sagte, dass es besser sei, IEnumerable zurückzugeben. Ich verstehe nicht warum. Außerdem habe ich bemerkt, dass in LINQ Methoden wie Where() IEnumerable zurückgeben, während ToList() es in List umwandelt. Wenn ich schreibe:
```csharp
var query = numbers.Where(n => n > 5);
foreach (var n in query)
{
Console.WriteLine(n);
}
```
Funktioniert alles, aber ich weiß nicht, was "unter der Haube" passiert. Gibt es einen Unterschied in der Leistung? Kann man Elemente in IEnumerable ändern? Und wann sollte man das eine und wann das andere verwenden? Erklären Sie es bitte anhand einfacher Beispiele, damit ich es endlich verstehe.
<<>>