Avatar ·

C#中的IEnumerable和List:如何选择以及它们如何工作?

你好!我是C#新手,经常在需要选择IEnumerable和List时感到困惑。例如,我写了一个从数据库返回数字列表的方法: ```csharp public List GetNumbers() { var numbers = new List(); for (int i = 0; i < 10; i++) { numbers.Add(i); } return numbers; } ``` 但我的同事说最好返回IEnumerable。我不明白为什么。我还注意到在LINQ中,像Where()这样的方法返回IEnumerable,而ToList()将其转换为List。当我写: ```csharp var query = numbers.Where(n => n > 5); foreach (var n in query) { Console.WriteLine(n); } ``` 一切正常,但我不知道“底层”发生了什么。性能上有区别吗?可以在IEnumerable中修改元素吗?什么时候应该使用一个,什么时候使用另一个?请用简单的例子解释一下,让我最终弄明白。 <<>>

IEnumerable和List之间的主要区别