Avatar ·

IEnumerable y List en C#: ¿cuál elegir y cómo funcionan?

¡Hola! Soy nuevo en C# y a menudo me confundo cuando tengo que elegir entre IEnumerable y List. Por ejemplo, escribo un método que devuelve una lista de números desde una base de datos: ```csharp public List GetNumbers() { var numbers = new List(); for (int i = 0; i < 10; i++) { numbers.Add(i); } return numbers; } ``` Pero mi colega dijo que es mejor devolver IEnumerable. No entiendo por qué. También noté que en LINQ métodos como Where() devuelven IEnumerable, y ToList() lo convierte en List. Cuando escribo: ```csharp var query = numbers.Where(n => n > 5); foreach (var n in query) { Console.WriteLine(n); } ``` Todo funciona, pero no sé qué sucede "bajo el capó". ¿Hay diferencia en rendimiento? ¿Se pueden modificar los elementos en IEnumerable? ¿Y cuándo usar uno y cuándo el otro? Explíquenme, por favor, con ejemplos simples para que finalmente lo entienda. <<>>

Diferencias principales entre IEnumerable y List