如何将一个Arraylist数据移动到另一个arraylist。我尝试了很多选项,但输出的形式是数组而不是arraylist
答案 0 :(得分:16)
首先 - 除非您使用的是.NET 1.1,否则应该避免ArrayList
- 更喜欢类型化的集合,例如List<T>
。
当您说“复制”时 - 是否要替换,追加或创建新的?
用于追加(使用List<T>
):
List<int> foo = new List<int> { 1, 2, 3, 4, 5 };
List<int> bar = new List<int> { 6, 7, 8, 9, 10 };
foo.AddRange(bar);
要替换,请在foo.Clear();
之前添加AddRange
。当然,如果你知道第二个列表足够长,你可以循环索引器:
for(int i = 0 ; i < bar.Count ; i++) {
foo[i] = bar[i];
}
创建新的:
List<int> bar = new List<int>(foo);
答案 1 :(得分:6)
ArrayList model = new ArrayList();
ArrayList copy = new ArrayList(model);
答案 2 :(得分:5)
使用将ICollection作为参数的ArrayList构造函数。 大多数集合都有这个构造函数。
ArrayList newList = new ArrayList(oldList);
答案 3 :(得分:4)
ArrayList l1=new ArrayList();
l1.Add("1");
l1.Add("2");
ArrayList l2=new ArrayList(l1);
答案 4 :(得分:1)
http://msdn.microsoft.com/en-us/library/system.collections.arraylist.addrange.aspx
来自上述链接的无耻复制/粘贴
// Creates and initializes a new ArrayList.
ArrayList myAL = new ArrayList();
myAL.Add( "The" );
myAL.Add( "quick" );
myAL.Add( "brown" );
myAL.Add( "fox" );
// Creates and initializes a new Queue.
Queue myQueue = new Queue();
myQueue.Enqueue( "jumped" );
myQueue.Enqueue( "over" );
myQueue.Enqueue( "the" );
myQueue.Enqueue( "lazy" );
myQueue.Enqueue( "dog" );
// Displays the ArrayList and the Queue.
Console.WriteLine( "The ArrayList initially contains the following:" );
PrintValues( myAL, '\t' );
Console.WriteLine( "The Queue initially contains the following:" );
PrintValues( myQueue, '\t' );
// Copies the Queue elements to the end of the ArrayList.
myAL.AddRange( myQueue );
// Displays the ArrayList.
Console.WriteLine( "The ArrayList now contains the following:" );
PrintValues( myAL, '\t' );
除此之外,我认为Marc Gravell是正确的;)
答案 5 :(得分:1)
我找到了提升数据的答案,如:
Firstarray.AddRange(SecondArrary);