我的同事在他写的C#代码中使用了for循环来迭代一个List,并留下了评论:"没有使用ForEach,因为我不确定它是否按顺序迭代。谁知道微软会做什么。" 例如,假设我们有一个像这样构建起来的List:
var someList = new List<string>();
someList.Add("one");
someList.Add("two");
someList.Add("three");
我的同事使用了类似这样的代码:
for (int i = 0; i < someList.Count; i++)
{
System.Diagnostics.Debug.WriteLine(someList[i]);
}
用这个替代:
foreach (var item in someList)
{
System.Diagnostics.Debug.WriteLine(item);
}
我猜他担心集合中的项可能以不同于它们添加到集合中的顺序出现。我认为他有点多虑,但从技术上讲,文档没有规定集合迭代的顺序。foreach语句是否可能以任何低于最高绑定到最高绑定之外的顺序遍历数组或集合对象?