2012-03-31 14 views
11

Werten Ich versuche, ein Wörterbuch mit Textelementen als Schlüssel zu initialisieren und [] Elemente als Wert int, wie folgt:erstellen Wörterbuch mit Arrays als

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

Aber der Debugger sagte immer wieder: „Unerwarteter Symbol '{' ".

Können Sie mir sagen, was mit dem obigen Code falsch ist?

Vielen Dank!

Antwort

8

Ich bin nicht sicher, für C# aber die folgenden Arbeiten in Java zum Beispiel:

statt

{1,1} 

versuchen

new int[]{1,1} 

oder

new[]{1,1} 
+2

Oder einfach 'neu [] {1,1}' wenn Sie bevorzugen. – drch

+0

Danke! Es funktioniert jetzt! – 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

Sie angeben müssen, dass es ein Array ist, dass Sie sich in Ihrem Wörterbuch einfügen:

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

Im Folgenden zwei Beispiele sind, die funktionieren. Das zweite Beispiel funktioniert nur innerhalb einer Methode. Das erste Beispiel funktioniert innerhalb einer Methode oder außerhalb einer Methode in einer Klasse.

Der ursprüngliche Code fehlte die() für die neue Dictionary() -Anweisung, die wahrscheinlich ist, was den "{" unausgeführten Symbolfehler. Die "neue Int []" ist ebenfalls erforderlich

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

Zusätzlich zu allen guten Antworten können Sie dies auch versuchen.

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

Wenn möglich bevorzugen Liste <> über Arrays als Redimensionierung in Arrays schwierig ist. Sie können ein Element nicht aus einem Array löschen. Ein Element kann jedoch aus der Liste gelöscht werden.

Verwandte Themen