2012-03-31 39 views
11

Tôi đang cố gắng để khởi tạo một từ điển với các yếu tố như chuỗi phím và int [] các yếu tố như giá trị, như sau:Tạo một cuốn từ điển với mảng như giá trị

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

Nhưng debugger giữ nói: "biểu tượng bất ngờ '{' ".

Bạn có thể cho tôi biết điều gì sai với mã trên không?

Cảm ơn bạn!

Trả lời

8

Tôi không chắc chắn cho C# nhưng các công việc sau trong Java ví dụ:

thay vì

{1,1} 

thử

new int[]{1,1} 

hoặc

new[]{1,1} 
+2

Hoặc đơn giản là 'mới [] {1,1} 'nếu bạn thích. – drch

+0

Cảm ơn bạn! Nó hoạt dộng bây giờ! – 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

Bạn sẽ cần phải xác định rằng đó là một mảng mà bạn đang chèn vào từ điển của bạn:

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

Dưới đây là hai ví dụ mà làm việc. Ví dụ thứ hai chỉ hoạt động bên trong một phương thức. Ví dụ đầu tiên sẽ làm việc bên trong một phương thức hoặc bên ngoài một phương thức trong một lớp.

Mã ban đầu đã thiếu dấu() cho câu lệnh Dictionary() mới có lẽ là nguyên nhân gây ra lỗi biểu tượng "{" không được giải thích. "Int mới []" cũng được yêu cầu

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

Ngoài tất cả các câu trả lời hay, bạn cũng có thể thử điều này.

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

Nếu có thể thích Danh sách <> trên mảng thay đổi kích thước rất khó trong Mảng. Bạn không thể xóa một phần tử khỏi một mảng. Nhưng một phần tử có thể bị xóa khỏi Danh sách.

Các vấn đề liên quan