【问题标题】:How does List<T>.AddRange actually add the range supplied?List<T>.AddRange 如何实际添加提供的范围?
【发布时间】:2019-06-08 19:01:50
【问题描述】:

我已经四处寻找了一段时间,似乎找不到任何能解决我问题的文档。

我想知道我是否应该关心将提供给List&lt;T&gt;.AddRange() 的范围添加到集合中的顺序。我可以假设它会按照我提供的顺序添加;也就是说,如果我提供0, 8, 5, 2, 9,则不应按9, 5, 2, 0, 80, 8, 5, 2, 9 以外的任何顺序添加。

我在控制台应用程序中运行了一个测试,以确定使用 AddRange 方法中的后增量的结果,如下所示:

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);

这按我预期的从zero29 的顺序打印。但是,我担心的是我无法找到确切显示此范围是如何添加到集合中的文档。我会假设它会是这样的:

foreach (int i in range)
    collection.Add(i);

这肯定会保留我提供的任何订单,但我想确保这确实是正在发生的事情,或者至少正在发生的事情永远不会重新排序提供的范围。


注意:

显然我今天还没有喝足够的咖啡,在查看documentationAddRange 时错过了它。无论如何,谢谢大家,至少对于可能好奇的未来读者来说,这是一个很好的问题。

【问题讨论】:

标签: c# list addrange


【解决方案1】:

集合中元素的顺序保存在 列表。

这是备注部分下的第一行,位于: https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1.addrange?view=netframework-4.7.2

【讨论】:

  • 是的,为了胜利,略读阅读;我显然还没有喝足够的咖啡。谢谢!
  • 我会尽快接受作为答案。我相信最少 10 分钟。
  • @PerpetualJ 不用担心,但谢谢,我很感激。
猜你喜欢
  • 1970-01-01
  • 2010-09-11
  • 2018-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多