gpt4 book ai didi

.net - .NET foreach 语句是否保证以与构建集合相同的顺序迭代集合?

转载 作者:行者123 更新时间:2023-12-03 15:05:57 25 4
gpt4 key购买 nike

一位同事在他编写的一些 C# 代码中使用 for 循环迭代 List 并留下评论,“没有使用 For Each 因为我不确定它是否按顺序迭代。谁知道微软会做什么。”例如,假设我们有一个像这样构建的列表:

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 语句是否可以按照除从最低到最高的顺序以外的任何顺序遍历数组或集合对象?

最佳答案

您的问题是关于 List<T> ,这确实维持秩序。

foreach 本身并不能保证做任何事情。它只是询问为其枚举器提供的对象,它可能会做任何事情。

关于.net - .NET foreach 语句是否保证以与构建集合相同的顺序迭代集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/612486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com