C# копирование ArrayList в массив
-
27-10-2019 - |
Вопрос
Я хотел бы знать, как отправить всю информацию в 3 арестователях на массив.
Arraylist clubs = new Arraylist
Arraylist spades = new Arraylist
Arraylist hearts = new Arraylist.
int[] array = new int[52]
Я получил значения для 1-13 в каждом из арестователей, теперь я хотел бы скопировать все значения для трех массивов в массив [52].
Решение
clubs.CopyTo(array, 0);
spades.CopyTo(array, 13);
hearts.CopyTo(array, 26);
diamonds.CopyTo(array, 39);
Другие советы
var array = clubs.Concat(spades).Concat(heart).ToArray();
РЕДАКТИРОВАТЬ: Уп, пока, что 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();
Извините за публикацию ответа, который не компилируется. Но опять же ... ОП тоже не компилировал ...;)
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.
Это Copyto Method Method. Анкет Есть также Toarray метод также. Различия? Использование Toarray возвращает массив, поэтому создает его для вас. Единственное, что вам нужно будет поднять его в целочисленное массив в этом случае. Производительность мудро? Ну, они оба O (n), и оба вызовут Array.copy в любом случае.
Это зависит от того, есть ли у вас уже созданный массив о том, какой из них вы хотите использовать. У CopyTo есть несколько дополнительных вариантов, которые могут представлять интерес, если вы делаете больше, чем просто копия 1: 1.