2010-09-22 43 views
50

Rất dễ dàng hôm nay, tôi nghĩ vậy. Trong C#, của nó:Thêm khóa/giá trị vào từ điển tại khai báo

Dictionary<String, String> dict = new Dictionary<string, string>() { { "", "" } }; 

Nhưng trong vb, những điều sau đây không hiệu quả.

Public dict As Dictionary(Of String, String) = New Dictionary(Of String, String) (("","")) 

Tôi chắc chắn có cách thêm chúng vào khai báo nhưng tôi không chắc chắn cách thực hiện. Và vâng, tôi muốn thêm chúng vào khai báo, không phải lúc nào khác. :) Vì vậy, hy vọng nó có thể. Cảm ơn mọi người.

Tôi cũng đã thử:

Public dict As Dictionary(Of String, String) = New Dictionary(Of String, String) ({"",""}) 

Và ...

Public dict As Dictionary(Of String, String) = New Dictionary(Of String, String) {("","")} 

Và ...

Public dict As Dictionary(Of String, String) = New Dictionary(Of String, String) {{"",""}} 

Trả lời

81

Điều này có thể trong VB.NET 10:

Dim dict = New Dictionary(Of Integer, String) From {{ 1, "Test1" }, { 2, "Test1" }} 

Thật không may IIRC VS 2008 sử dụng VB.NET 9 trình biên dịch mà không hỗ trợ cú pháp này.

Và đối với những người có thể quan tâm ở đây là những gì xảy ra đằng sau hậu trường (C#):

Dictionary<int, string> VB$t_ref$S0 = new Dictionary<int, string>(); 
VB$t_ref$S0.Add(1, "Test1"); 
VB$t_ref$S0.Add(2, "Test1"); 
Dictionary<int, string> dict = VB$t_ref$S0; 
+0

tốt! Tôi tự hỏi làm thế nào mà cư xử, hiện nó xây dựng mảng hai chiều đầu tiên, và sau đó nó sao chép vào từ điển? – vulkanino

+0

Dern. Vì vậy, bạn đang nói rằng kể từ khi tôi đang sử dụng VS2008 tôi không thể làm điều đó? Đó là stinkies. – XstreamINsanity

+1

Yeap, một chút stinky :-) Thời gian để nâng cấp. –

0

Không có nhà xây dựng để có một KeyValuePair cho một cuốn từ điển.

8

Nó cũng tương tự, sử dụng Từ khoá:

Dim d As New Dictionary(Of String, String) From {{"", ""}} 

Tuy nhiên, điều này đòi hỏi phiên bản 10 của ngôn ngữ, có sẵn trong VS2010.

7

Đây là bản dịch thú vị: Bạn cũng có thể có một Từ điển chung về chuỗi và chuỗi ký tự.

C#:

private static readonly Dictionary<string, string[]> dics = new Dictionary<string, string[]> 
     { 
      {"sizes", new string[] {"small", "medium", "large"}}, 
      {"colors", new string[] {"black", "red", "brown"}}, 
      {"shapes", new string[] {"circle", "square"}} 
     }; 

VB:

Private Shared ReadOnly dics As New Dictionary(Of String, String()) From { _ 
{"sizes", New String() {"small", "medium", "large"}}, _ 
{"colors", New String() {"black", "red", "brown"}}, _ 
{"shapes", New String() {"circle", "square"}}} 

mát haa :)

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