通过阅读类似的帖子,我了解到列表是一种IEnumerable.但我真的很想知道这两者的实际区别是什么.

对于一直使用列表但从未使用过IEnumerable的人:

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

下面是practical example分: 我们希望存储四个字符串,按字母顺序排序,将它们传递给另一个函数,然后向用户显示结果.我们会使用什么?为什么?

希望有人能帮我解决这个问题,或者给我指出正确的方向.

推荐答案

IEnumerable和List之间的一个重要区别(除了一个是接口,另一个是具体类)是IEnumerable是只读的,List不是.

因此,如果您需要对Collection 进行任何类型的永久性更改(添加和删除),您将需要List.如果你只需要阅读、排序和/或过滤你的Collection ,IEnumerable就足够了.

所以在你的实际例子中,如果你想一次添加一个字符串,你需要一个列表.但是,如果同时实例化集合,可以使用IEnumerable.

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

然后,您可以使用LINQ根据需要对列表进行过滤或排序.

.net相关问答推荐

获取Ef-Core集合的DeleteBehavior

.NET Core 中的微服务

如何调试 .NET 运行时中的内部错误?

是否有任何为 C# 编写的模糊搜索或字符串相似函数库?

NonSerialized 属性

C#6.0 字符串插值本地化

ASP.NET MVC:隐藏字段值不会使用 HtmlHelper.Hidden 呈现

实例化具有运行时确定类型的对象

如何将字符串列表数据绑定到 WPF/WP7 中的 ListBox?

编译错误:显式实现接口时修饰符 'public' 对此项目无效

序列化私有成员数据

读取方法的属性值

如何使用转储文件来诊断内存泄漏?

迭代器和枚举器的区别

mscorlib 代表什么?

在关闭警告中访问 foreach 变量

更改 SqlConnection 超时

如何从文件中删除单个属性(例如只读)?

在 .Net 中调用 Web 服务时绕过无效的 SSL 证书错误

如何为 Dapper 查询动态创建参数