c# - List<string> 和 IEnumerable<string> 有什么区别

标签 c#

这两个似乎在做同样的事情。我为它们计时——知道这是一个小例子——但它们似乎也以完全相同的速度运行。使用一个比另一个有好处吗?

List<string> alpha = new List<string>(new string[] { "a", "b", "c" });
foreach (var letter in alpha)
{
    Console.WriteLine(letter);
}

IEnumerable<string> _alpha = new[] {"a", "b", "c"};
foreach(var _letter in _alpha)
{
     Console.WriteLine(_letter);
}

最佳答案

IEnumerable<string>是一个接口(interface)。 List<string>是实现该接口(interface)的类。

接口(interface)只是定义实现该接口(interface)的类必须实现的功能。

该类负责实际实现该功能。

您的测试实际上是在测试遍历 List<string> 的速度和一个 string[] .由于 sample 尺寸小,内部工作原理 List<string>类,你真的不应该看到差异。

关于c# - List<string> 和 IEnumerable<string> 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10523145/

相关文章:

c# - 为什么Reflector无法显示字节数组?这是由于某些技术限制吗?

c# - 如何使用 ClosedXML 为列设置数据类型?

c# - 子查询,在 Select 内部,不将 Order By 应用于基础查询

c# - 泛型方法的多重约束?

c# - 提交时下拉值重置为初始值

c# - FluentValidation:仅验证已更改的属性

c# - 缺少适用于 Windows Phone 的 Microsoft Visual C++ 2013 运行时包

c# - 添加到聚合根时未保存子实体

c# - x64 选项在新项目的配置管理器中不可用

C# 如何设置属性网格中对象的默认值?