2008-11-25 11 views
22

क्या एक कथन में स्ट्रिंग कुंजी/मान जोड़े के साथ System.Collections.Generic.Dictionary ऑब्जेक्ट बनाना और प्रारंभ करना संभव है?स्ट्रिंग कुंजी/वैल्यू जोड़े के साथ एक नई सिस्टम। कोलेक्शन। जेनरिक. डिक्शनरी शुरू करना संभव है?

.. मैं तार की एक सरणी के लिए निर्माता की तर्ज पर सोच रहा हूँ

उदा

Private mStringArray As String() = {"String1", "String2", "etc"} 

मामले में यह है पता चला है की बात मन में syntactic sugar तरह का हो, मैं एक जवाब है कि मैं नेट 2.0 में उपयोग कर सकते हैं पसंद करते हैं (दृश्य स्टूडियो 2005), और विजुअल बेसिक - हालांकि मैं उत्सुक हूँ यदि यह संभव है सब पर इतना है कि आप बंद कर दिया जाने नहीं; ओ)

उत्तर

7

मैं डॉन 'की आवश्यकता हो सकती टी नहीं लगता टी करने का एक तरीका है वीबी.नेट 2 में बॉक्स के बाहर, हालांकि आप जेनेरिक डिक्शनरी को उस तरीके से काम करने के लिए बढ़ा सकते हैं जिस तरह से आप इसे चाहते हैं।

Imports System.Collections.Generic 

Module Module1 

    Sub Main() 

     Dim items As New FancyDictionary(Of Integer, String)(New Object(,) {{1, "First Item"}, {2, "Second Item"}, {3, "Last Item"}}) 
     Dim enumerator As FancyDictionary(Of Integer, String).Enumerator = items.GetEnumerator 

     While enumerator.MoveNext 
      Console.WriteLine(String.Format("{0} : {1}", enumerator.Current.Key, enumerator.Current.Value)) 
     End While 

     Console.Read() 

    End Sub 

    Public Class FancyDictionary(Of TKey, TValue) 
     Inherits Dictionary(Of TKey, TValue) 

     Public Sub New(ByVal InitialValues(,) As Object) 

      For i As Integer = 0 To InitialValues.GetLength(0) - 1 

       Me.Add(InitialValues(i, 0), InitialValues(i, 1)) 

      Next 

     End Sub 

    End Class 

End Module 
5

इस वाक्य का प्रयास करें:

Dictionary<string, double> dict = new Dictionary<string, double>() 
{ 
    { "pi", 3.14}, 
    { "e", 2.71 } 
}; 

लेकिन उस सी # 3 (.NET 3.5)

+0

यह सी # 3 की आवश्यकता होती है, लेकिन यह .NET 3.5 की आवश्यकता नहीं है। –

77
इस तरह

:

नीचे सांत्वना एप्लिकेशन को इस दिखाता

Dim myDic As New Dictionary(Of String, String) From {{"1", "One"}, {"2", "Two"}} 
+0

यह वह उत्तर है जिसे मैं ढूंढ रहा था। :) – kamranicus

+8

वीबीएनईटी 10 –

+0

घुंघराले ब्रैकेट के दो सेट .... धन्यवाद :) – twoleggedhorse

-1

मैं जानता हूँ कि यह एक पुरानी पोस्ट है, लेकिन इस सवाल अक्सर ऊपर आता है। यदि

यहाँ & घोषित करने के लिए एक बयान में एक शब्दकोश प्रारंभ एक तरीका है:

Private __sampleDictionary As New Dictionary(Of Integer, String) From 
{{1, "This is a string value"}, {2, "Another value"}} 
+1

यह 2010 में पहले से ही jgauffin द्वारा कहा गया है। पोस्ट करने से पहले पढ़ें;) –

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

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