列表(List)和可枚举类型(IEnumerable)的实际区别
列表(List)和可枚举类型(IEnumerable)的实际区别
这个问题已经有答案了:
通过阅读类似的帖子,我学到List是IEnumerable的一种类型。但我真的想知道这两者之间的实际区别。
对于一直使用List但从未使用IEnumerable的人来说:
- 两者之间的实际区别是什么?
- 在什么情况下,其中一个比另一个更好?
这里有一个实际例子:
我们想要存储四个字符串,将它们按字母顺序排序,将它们传递给另一个函数,然后向用户显示结果。我们应该使用什么,为什么?
希望有人能为我澄清这个问题或指引我正确的方向。
先提前感谢!
admin 更改状态以发布 2023年5月21日
除了一个是接口,另一个是具体类之外,IEnumerable和List之间的一个重要区别是IEnumerable是只读的,而List则不是。
因此,如果您需要对集合进行任何类型的永久更改(添加和删除),则您需要List。如果您只需要读取、排序和/或过滤您的集合,则IEnumerable就足够了。
因此,在您的实际示例中,如果您想逐个添加这四个字符串,则需要使用List。但是,如果您一次性实例化您的集合,则可以使用IEnumerable。
IEnumerable firstFourLettersOfAlphabet = new[]{"a","b","c","d"};
然后,您可以使用LINQ按照您想要的方式过滤或排序列表。