2012-03-31 15 views
11

próbuję zainicjować słownik z elementów strunowych jak klucze i int [] elementy jak wartości, co następuje:Tworzenie słownika z tablicami jako wartości

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

Ale debugger powtarza: „Nieoczekiwany symbol "{" ".

Czy możesz mi powiedzieć, co jest nie tak z powyższym kodem?

Dziękujemy!

Odpowiedz

8

Nie jestem pewien, C#, ale następujące prace w Javie na przykład:

zamiast

{1,1} 

spróbować

new int[]{1,1} 

lub

new[]{1,1} 
+2

Lub po prostu "nowy [] {1,1}", jeśli wolisz. – drch

+0

Dziękujemy! Teraz działa! – 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

Trzeba będzie określić, że jest to tablica, że ​​wstawiasz się do swojego słownika:

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

Poniżej przedstawiamy dwa przykłady, które działają. Drugi przykład działa tylko wewnątrz metody. Pierwszy przykład będzie działał wewnątrz metody lub poza metodą w klasie.

W początkowym kodzie brakowało() dla nowej instrukcji Dictionary(), która prawdopodobnie spowodowała błąd "{" w nieokreślonym symbolu. Wymagane jest również "nowe urządzenie 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

Oprócz wszystkich dobrych odpowiedzi, możesz również wypróbować to.

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

Jeśli to możliwe wolą Lista <> nad tablicami jak zmiana rozmiaru jest trudny w tablicach. Nie można usunąć elementu z tablicy. Ale element można usunąć z listy.

Powiązane problemy