2011-09-18 16 views
32

Desidero disporre di un array di elenchi. In C++ mi piace:Un array di elenco in C#

List<int> a[100]; 

che è un array di 100 liste. ogni lista può contenere molti elementi. Non so come farlo in C#. Qualcuno può aiutarmi?

risposta

62

Ti è piaciuta questa:

List<int>[] a = new List<int>[100]; 

Ora avete un array di tipo List<int> contenente 100 riferimenti nulli. È necessario creare elenchi e mettere nella matrice, per esempio:

a[0] = new List<int>(); 
1
List<int>[] a = new List<int>[100]; 

Hai ancora dovrà allocare ogni singolo elenco nella matrice prima è possibile utilizzarlo anche se:

for (int i = 0; i < a.Length; i++) 
    a[i] = new List<int>(); 
1

uso

List<int>[] a = new List<int>[100]; 
6

approccio semplice:

 List<int>[] a = new List<int>[100]; 
     for (int i = 0; i < a.Length; i++) 
     { 
      a[i] = new List<int>(); 
     } 

o LINQ app scarafaggio

 var b = Enumerable.Range(0,100).Select((i)=>new List<int>()).ToArray(); 
12

Dal momento che nessun contesto è stato dato a questa domanda e si è un relativamente nuovo utente, voglio fare in modo che siano a conoscenza che si può avere una lista di liste. Non è la stessa gamma di lista e ti ha chiesto specificamente per questo, ma comunque:

List<List<int>> myList = new List<List<int>>(); 

si può loro inizializzazione attraverso inizializzatori raccolta in questo modo:

List<List<int>> myList = new List<List<int>>(){{1,2,3},{4,5,6},{7,8,9}}; 
+0

+1 per la sintassi di inizializzazione (che funziona sia per gli array che per gli elenchi) – phoog

-6
// The letter "t" is usually letter "i"// 

    for(t=0;t<x[t];t++) 
    { 

     printf(" %2d   || %7d \n ",t,x[t]); 
    } 
+0

Puoi spiegare di rispondere un po 'di più. Inoltre, non sembra affrontare la domanda, che chiede come creare un array di liste, non come stampare nulla. –