列表(List)和可枚举类型(IEnumerable)的实际区别

7 浏览
0 Comments

列表(List)和可枚举类型(IEnumerable)的实际区别

这个问题已经有答案了

IEnumerable与List - 什么时候使用?它们如何工作?

通过阅读类似的帖子,我学到List是IEnumerable的一种类型。但我真的想知道这两者之间的实际区别。

对于一直使用List但从未使用IEnumerable的人来说:

  • 两者之间的实际区别是什么?
  • 在什么情况下,其中一个比另一个更好?

这里有一个实际例子

我们想要存储四个字符串,将它们按字母顺序排序,将它们传递给另一个函数,然后向用户显示结果。我们应该使用什么,为什么?

希望有人能为我澄清这个问题或指引我正确的方向。

先提前感谢!

admin 更改状态以发布 2023年5月21日
0
0 Comments

许多类型除了 List 之外都实现了 IEnumerable,例如 ArrayList。因此,其中一个优点是您可以将不同类型的集合传递给同一个函数。

0
0 Comments

除了一个是接口,另一个是具体类之外,IEnumerable和List之间的一个重要区别是IEnumerable是只读的,而List则不是。

因此,如果您需要对集合进行任何类型的永久更改(添加和删除),则您需要List。如果您只需要读取、排序和/或过滤您的集合,则IEnumerable就足够了。

因此,在您的实际示例中,如果您想逐个添加这四个字符串,则需要使用List。但是,如果您一次性实例化您的集合,则可以使用IEnumerable。

IEnumerable firstFourLettersOfAlphabet = new[]{"a","b","c","d"};

然后,您可以使用LINQ按照您想要的方式过滤或排序列表。

0