2011-08-16 5 views
2

Comment procéder pour convertir une liste d'entiers en un tableau à deux dimensions?Liste à un tableau à deux dimensions

List<int> integerList = new List<int>(); 
integerList.Add(1); 
integerList.Add(2); 
... 
integerList.Add(250000); 
int[,] integerArray = new int[500,500]; 

//fill integerArray with integerList values here 

La sortie cible doit être en lignes, en remplissant x de 0 à 499 puis en incrémentant y de 1 et répéter. integerArray [x, y]

+0

dépendrait probablement de la façon dont ils sont représentés dans le tableau, l'ordre des lignes ou l'ordre des colonnes? –

Répondre

5

Essayez ceci:

int i = 0; 
foreach(var number in integerList) 
{ 
    integerArray[i % 500, (int)(i/500)] = number; 
    i++; 
} 

Si vous voulez que le nombre incrémente d'abord la colonne, transposez simplement les opérations mod et div à l'intérieur du tableau.

+0

Si vous souhaitez que le numéro soit incrémenté d'abord dans la colonne, il suffit de transposer les opérations mod et div à l'intérieur du tableau. –

+0

C'est parfait. Merci @ Michael Hays! – cmm

+0

@Michael Hays: une modification pour cela est mieux qu'un commentaire. – Dani

0

Vous pouvez simplement utiliser une liste de tableaux, mais cela ne garantit pas la longueur des articles:

List l = new List<int[]>(); 
l.Add(new int[500]); 
Questions connexes