2010-09-22 14 views
50

आज मुझे लगता है कि बहुत आसान है। सी # में, इसकी:घोषणा पर शब्दकोश के लिए कुंजी/मान जोड़ें

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

लेकिन वीबी में, निम्नलिखित काम नहीं करता है।

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

मुझे यकीन है कि घोषणा में उन्हें जोड़ने का एक तरीका है, लेकिन मुझे यकीन नहीं है कि कैसे। और हाँ, मैं उन्हें घोषणा में जोड़ना चाहता हूं, किसी अन्य समय नहीं। :) तो उम्मीद है कि यह संभव है। सबको धन्यवाद।

मैं भी कोशिश की है:

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

और ...

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

और ...

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

उत्तर

81

यह VB.NET 10 में संभव है:

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

दुर्भाग्य IIRC वी.एस. 2008 का उपयोग करता है VB.NET 9 संकलक जो इस वाक्य रचना का समर्थन नहीं करता।

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

ठीक! मुझे आश्चर्य है कि यह कैसे व्यवहार करता है, क्या यह पहले दो आयामी सरणी बनाता है, और फिर यह शब्दकोश में प्रतिलिपि बनाता है? – vulkanino

+0

डर्न। तो आप कह रहे हैं कि चूंकि मैं वीएस -2008 का उपयोग कर रहा हूं, मैं इसे नहीं कर सकता? वह बदबू आ रही है। – XstreamINsanity

+1

हाँ, थोड़ा बदबूदार :-) अपग्रेड करने का समय। –

0

वहाँ एक शब्दकोश के लिए एक KeyValuePair लेने की कोई निर्माता है।

8

यह बहुत ही है, का उपयोग कीवर्ड से::

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

हालांकि, इस आवश्यकता

और उन है कि रुचि हो सकती है के लिए यहाँ पर्दे के पीछे क्या होता है (सी #) है भाषा का संस्करण 10, वीएस -2010 में उपलब्ध है।

7

यहां एक अच्छा अनुवाद है: आप स्ट्रिंग्स और स्ट्रिंग सरणी का जेनेरिक डिक्शनरी भी प्राप्त कर सकते हैं।

सी #:

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"}} 
     }; 

वीबी:

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"}}} 

कूल हा :)

संबंधित मुद्दे