c # copie d'un tableau à arraylist
-
27-10-2019 - |
Question
Je voudrais savoir comment envoyer toutes les informations en 3 à ArrayLists un tableau.
Arraylist clubs = new Arraylist
Arraylist spades = new Arraylist
Arraylist hearts = new Arraylist.
int[] array = new int[52]
Je suis les valeurs de 1 à 13 dans chacune des ArrayLists, maintenant je voudrais copier toutes les valeurs pour les trois ArrayLists à un réseau [52].
La solution
clubs.CopyTo(array, 0);
spades.CopyTo(array, 13);
hearts.CopyTo(array, 26);
diamonds.CopyTo(array, 39);
Autres conseils
var array = clubs.Concat(spades).Concat(heart).ToArray();
EDIT: Oops, TIL, que ArrayList
est l'un de ceux vieux types que j'ai complètement oublié. Ne vous embêtez pas avec elle de toute façon: Utilisez List<T>
à la place:
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();
Désolé pour l'affichage d'une réponse qui ne compile pas. Mais là encore ... Années OP ne compilent non plus ...;)
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);
Le code ne vérifie pas la longueur de chaque ArrayList, alors assurez qu'ils ne manqueront pas de plus de 13.
est un méthode CopyTo ArrayList . Il y a aussi un ToArray méthode. La différence? ToArray retourne le à l'aide de tableau, il crée pour vous. La seule chose est que vous aurez besoin de le jeter à un tableau entier dans ce cas. Performance sage? Eh bien, ils sont tous les deux O (n) et à la fois appel Array.Copy de toute façon.
Cela dépend si vous avez le tableau créé déjà à celui que vous voulez utiliser. CopyTo a quelques options supplémentaires qui peuvent intéresser si vous faites plus que 1:. 1 exemplaire