c#将arraylist复制到数组

时间:2011-06-14 08:04:14

标签: c# arraylist playing-cards

我想知道如何将3个arraylists中的所有信息发送到 一个数组。

Arraylist clubs = new Arraylist
Arraylist spades = new Arraylist
Arraylist hearts = new Arraylist.
int[] array = new int[52]

我在每个arraylists中得到1到13的值,现在我想 将三个arraylists的所有值复制到一个数组[52]。

4 个答案:

答案 0 :(得分:8)

clubs.CopyTo(array, 0);
spades.CopyTo(array, 13);
hearts.CopyTo(array, 26);
diamonds.CopyTo(array, 39);

答案 1 :(得分:6)

var array = clubs.Concat(spades).Concat(heart).ToArray();

编辑:糟糕,TIL,ArrayList是我完全忘记的类型之一。无论如何都不要理会:改为使用List<T>

List<int> clubs = new List<int>(){1, 2, 3};
List<int> hearts = new List<int>(){4, 5, 6};
List<int> spades = new List<int>(){7, 8, 9};
var array = clubs.Concat(hearts).Concat(spades).ToArray();  

很抱歉发布了无法编译的答案。但是又一次...... OP没有编译......;)

答案 2 :(得分:3)

ArrayList clubs = new ArrayList();
ArrayList spades = new ArrayList();
ArrayList hearts = new ArrayList();

int[] array = new int[52];

clubs.ToArray(typeof(int)).CopyTo(array, 0);
spades.ToArray(typeof(int)).CopyTo(array, clubs.Count);
hearts.ToArray(typeof(int)).CopyTo(array, spades.Count + clubs.Count);

代码不会检查每个ArrayList的长度,因此请确保它们不超过13个。

答案 3 :(得分:0)

CopyTo ArrayList method。还有一个ToArray方法。区别?使用ToArray返回数组,因此为您创建它。在这种情况下,唯一需要将它转换为整数数组。表现明智吗?好吧,无论如何,它们都是O(n)并且都调用了Array.Copy。

这取决于您是否已经创建了要使用哪个数组的数组。 CopyTo有一些额外的选项,如果您只做1:1的复制,可能会感兴趣。