在 C# 中,我刚刚发现没有像 C++ 或 Java 的迭代器这样的东西。在 C++ 中,建议我不要使用索引迭代链接列表,因为从每个循环的第一个节点访问都会影响性能。但在C#中我似乎只有两个选择。传统for循环 VS foreach。
C# 中有什么不同吗?与 C++ 不同,for 循环没有性能问题吗?
我还听说 foreach
会像 Java 一样在每次循环迭代中创建每个新变量,所以我不知道哪一个适合低端手机。
最佳答案
这并不能完全回答你的问题,但仍然想指出这个假设是错误的:
In C#, I just found out there's no such thing like an iterator of C++ or Java
在 C# 中称为枚举器,请参阅 IEnumerator<T>
.
另请考虑使用传统 for
的代码示例-循环:
static void Main(string[] args)
{
var data = new List<int> { 7, 10, 0 };
for (var it = data.GetEnumerator(); it.MoveNext(); )
{
Console.WriteLine(it.Current);
}
}
无论如何,我认为没有人会迭代列表或 IEnumerable
就像这个示例一样:)
关于c# - C# 中的 foreach 和带有 List<T> 的传统 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33890771/