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