我想知道如何将3个arraylists中的所有信息发送到 一个数组。
Arraylist clubs = new Arraylist
Arraylist spades = new Arraylist
Arraylist hearts = new Arraylist.
int[] array = new int[52]
我在每个arraylists中得到1到13的值,现在我想 将三个arraylists的所有值复制到一个数组[52]。
答案 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的复制,可能会感兴趣。