c # копирование массива в массив - PullRequest
1 голос
/ 14 июня 2011

Я хотел бы знать, как отправить всю информацию в 3-х массивах массив.

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

Я получил значения от 1 до 13 в каждом из массивов, теперь я хотел бы скопировать все значения для трех массивов в массив [52].

Ответы [ 4 ]

8 голосов
/ 14 июня 2011
clubs.CopyTo(array, 0);
spades.CopyTo(array, 13);
hearts.CopyTo(array, 26);
diamonds.CopyTo(array, 39);
6 голосов
/ 14 июня 2011
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();  

Извините за публикацию ответа, который не компилируется.Но опять же ... ОП тоже не компилировались ...;)

3 голосов
/ 14 июня 2011
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.

0 голосов
/ 14 июня 2011

Метод CopyTo ArrayList .Существует также метод ToArray .Различия?Использование ToArray возвращает массив, поэтому создает его для вас.Единственное, что вам нужно будет привести его к целочисленному массиву в этом случае.Производительность мудрая?Ну, в любом случае они оба O (n) и оба вызывают Array.Copy.

Зависит ли уже созданный массив от того, который вы хотите использовать.CopyTo имеет несколько дополнительных опций, которые могут быть интересны, если вы делаете больше, чем просто копия 1: 1.

...