List<T>.AddRange 如何实际添加提供的范围?
How does List<T>.AddRange actually add the range supplied?
我已经四处寻找了一段时间,似乎找不到任何文档来解决我的问题。
我想知道我是否应该关注将提供给 List<T>.AddRange()
的 运行ge 添加到集合中的顺序。我可以整天假设它将按照我提供的顺序添加;也就是说,如果我提供 0, 8, 5, 2, 9
,则永远不应按 9, 5, 2, 0, 8
或 0, 8, 5, 2, 9
.
以外的顺序添加
我在控制台应用程序中进行了 运行 测试,以确定使用 AddRange
方法中的 post 增量的结果,如下所示:
List<int> test = new List<int>();
for (int i = 0; i < 30;)
test.AddRange(new int[] { i++, i++, i++ });
foreach (int i in test)
Console.WriteLine(i);
这按我预期的顺序打印,从 zero
到 29
。但是,我担心的是我无法找到准确显示此 运行ge 是如何添加到集合中的文档。我会假设它会是这样的:
foreach (int i in range)
collection.Add(i);
这肯定会保留我提供的任何订单,但我想确保这确实是正在发生的事情,或者至少正在发生的事情永远不会对提供的 运行ge 重新排序。
注意:
显然我今天还没有喝足够的咖啡,在查看 documentation 的 AddRange
时错过了它。无论如何,谢谢大家,至少对于未来可能好奇的读者来说,这是一个很好的问题。
The order of the elements in the collection is preserved in the
List.
这是备注部分下的第一行:
https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1.addrange?view=netframework-4.7.2
我已经四处寻找了一段时间,似乎找不到任何文档来解决我的问题。
我想知道我是否应该关注将提供给 List<T>.AddRange()
的 运行ge 添加到集合中的顺序。我可以整天假设它将按照我提供的顺序添加;也就是说,如果我提供 0, 8, 5, 2, 9
,则永远不应按 9, 5, 2, 0, 8
或 0, 8, 5, 2, 9
.
我在控制台应用程序中进行了 运行 测试,以确定使用 AddRange
方法中的 post 增量的结果,如下所示:
List<int> test = new List<int>();
for (int i = 0; i < 30;)
test.AddRange(new int[] { i++, i++, i++ });
foreach (int i in test)
Console.WriteLine(i);
这按我预期的顺序打印,从 zero
到 29
。但是,我担心的是我无法找到准确显示此 运行ge 是如何添加到集合中的文档。我会假设它会是这样的:
foreach (int i in range)
collection.Add(i);
这肯定会保留我提供的任何订单,但我想确保这确实是正在发生的事情,或者至少正在发生的事情永远不会对提供的 运行ge 重新排序。
注意:
显然我今天还没有喝足够的咖啡,在查看 documentation 的 AddRange
时错过了它。无论如何,谢谢大家,至少对于未来可能好奇的读者来说,这是一个很好的问题。
The order of the elements in the collection is preserved in the List.
这是备注部分下的第一行: https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1.addrange?view=netframework-4.7.2