2012-03-31 13 views
11

Sto cercando di inizializzare un dizionario con elementi stringa come chiavi e int [] elementi come valori, come segue:creare un dizionario con le matrici come valori

System.Collections.Generic.Dictionary<string,int[]> myDictionary; 
myDictionary = new Dictionary<string,int[]>{{"length",{1,1}},{"width",{1,1}}}; 

Ma il debugger continua a dire: "simbolo Unexpected '{'".

Potresti dirmi cosa c'è che non va nel codice sopra riportato?

Grazie!

risposta

8

Non sono sicuro per C#, ma le seguenti opere in Java, per esempio:

invece di

{1,1} 

provo

new int[]{1,1} 

o

new[]{1,1} 
+2

O semplicemente "nuovo [] {1,1}' se preferisci. – drch

+0

Grazie! Ora funziona! – Jodll

4
System.Collections.Generic.Dictionary<string,int[]> myDictionary; 
     myDictionary = new Dictionary<string, int[]> { { "length", new int[] { 1, 1 } }, { "width", new int[] { 1, 1 } } }; 
3

Sarà necessario specificare che si tratta di una matrice che si sta inserendo al tuo dizionario:

System.Collections.Generic.Dictionary<string, int[]> myDictionary; 
myDictionary = new Dictionary<string, int[]> {{"length", new int[]{1,2}},{ "width",new int[]{3,4}}}; 
6

Qui di seguito sono due esempi che funzionano. Il secondo esempio funziona solo all'interno di un metodo. Il primo esempio funzionerà all'interno di un metodo o al di fuori di un metodo in una classe.

Nel codice iniziale mancava il simbolo() per la nuova istruzione Dictionary() che probabilmente ha fornito l'errore di simbolo "{" non visualizzato. È richiesta anche la "nuova Int []"

class SomeClass 
{ 
    Dictionary<string, int[]> myDictionary = new Dictionary<string, int[]>() 
    { 
     {"length", new int[] {1,1} }, 
     {"width", new int[] {1,1} }, 
    }; 

    public void SomeMethod() 
    { 
     Dictionary<string, int[]> myDictionary2; 
     myDictionary2 = new Dictionary<string, int[]>() 
     { 
      {"length", new int[] {1,1} }, 
      {"width", new int[] {1,1} }, 
     }; 

    } 
} 
1

Oltre a tutte le buone risposte, è anche possibile provare questo.

Dictionary<string, List<int>> dict = new Dictionary<string, List<int>>(); 

Se possibile preferiscono Lista <> sopra le matrici come il ridimensionamento è difficile in Array. Non è possibile eliminare un elemento da una matrice. Ma un elemento può essere cancellato dalla lista.

Problemi correlati