【问题标题】:How to use the "CopyTo" method of an ArrayList to another ArrayList object?如何将 ArrayList 的“CopyTo”方法用于另一个 ArrayList 对象?
【发布时间】:2014-09-21 21:55:48
【问题描述】:

我想知道在 C#VB.NET 中如何使用 ArrayList 对象的 CopyTo 方法将其内容复制到其他 ArrayList (不是一个简单的数组)。

注意:我不是在寻找像 ArrayList 的 Clone 方法或其他建议之类的东西,我需要使用 CopyTo 方法来知道我是否应该丢弃问题在其他情况下。

这是 VB.NET 中的代码示例:

Dim ArrayList1 as New ArrayList
Dim ArrayList2 as New ArrayList
ArrayList1.Add({"test-Item1-1", "test-Item1-2", "Test-Item1-3"})


' This says that the matrix of the destiny Array is too short.
ArrayList1.CopyTo(ArrayList2.ToArray)

' This shows the typical CastIterator exception 'cause LINQ.
ArrayList1.CopyTo(ArrayList2.Cast(Of Array))

' This says that the ArrayList can't be converted to an Array.
ArrayList1.CopyTo(CType(ArrayList2, Array))

【问题讨论】:

  • 旁注:为什么不使用List<String> 来代替?
  • @Tim Schmelter '因为用于 MY.Settings,不接受通用集合 :(。感谢您的评论
  • @Tim Schmelter 是的,但是 stringcollection 需要 String 而不是 String(),ArrayList 应该更容易使用,而不是使用分隔符来拆分普通 String,我真的对替代品不感兴趣,我知道替代方案,我只是想知道“CopyTo”方法的正确用法来丢弃问题,谢谢您的评论。

标签: c# .net arrays vb.net arraylist


【解决方案1】:

我会简单地使用ArrayList.AddRange:

ArrayList2.AddRange(ArrayList1)

【讨论】:

  • 真的很感谢您的帮助,但很抱歉,我只是在寻找使用 CopyTo 方法将项目添加到其他 ArrayLists 的方式,因为我已经解释过这是为了丢弃其他情况下的问题(并学习正确的用法)。感谢您的回答 +1
  • @ElektroStudios:我不明白你为什么需要使用CopyToArrayList 不是数组,因此您不能使用此方法。您必须从列表中创建另一个数组才能使用CopyTo。这个数组需要有正确的大小(所以至少是旧的 ArrayList + 新的内容)。之后,您需要使用带有该数组的集合的构造函数创建一个新的 ArrayList。这是非常低效且不可读的。
  • 真正的问题是我在 My.Settings 中有一个 ArrayList,但是任何方法都会在下一次应用程序运行时保存(初始化的)arraylist 中的更改,但使用“Collections.ArrayList.Repeat”设置 ArrayList 的方法(在 my.settings 中),更改仍保留在下一次运行中,但该方法不像预期的那样工作(因为只添加 1 个值),我希望 CopyTo 方法最终能解决这个问题,但是为此,我首先需要知道如何使用 CopyTo 方法来解决问题。
  • 如果您不想使用反射,就无法使用CopyToAddRange 是你这里唯一的东西。
  • 好的,非常感谢您的澄清,如果没有办法使用 CopyTo 方法,那么我接受答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多