Domanda

Vorrei sapere come inviare tutte le informazioni in 3 schierate a un array.

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

Ho ricevuto valori da 1 a 13 in ciascuna delle liste di array, ora vorrei copiare tutti i valori per le tre schierate su un array [52].

È stato utile?

Soluzione

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

Altri suggerimenti

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

MODIFICARE: Oops, fino a quello ArrayList è uno di quelli vecchio Tipi di cui mi sono completamente dimenticato. Non preoccuparti comunque: usa List<T> invece:

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();  

Ci scusiamo per aver pubblicato una risposta che non si compila. Ma poi di nuovo ... l'OP non ha compilato neanche ...;)

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);

Il codice non controlla la lunghezza di ogni arraylist, quindi assicurati che non siano più lunghi di 13.

Il è a Copia metodo ArrayList. C'è anche un Toarray anche metodo. La differenza? L'uso di Toarray restituisce l'array, quindi crea per te. L'unica cosa è che dovrai lanciarlo su un array di interi in quel caso. Per quanto riguarda le prestazioni? Bene, sono entrambi O (N) ed entrambi Call Array.Copy comunque.

Dipende dal fatto che tu abbia già creato l'array su quale si desidera utilizzare. Copyto ha alcune opzioni extra che potrebbero essere interessanti se stai facendo più di una semplice copia 1: 1.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top