Je možné inicializovat nový System.Collections.Generic.Dictionary dvojicemi String klíč / hodnota?

hlasů
22

Je možné vytvořit a inicializovat System.Collections.Generic.Dictionaryobjekt s strunných párů klíč / hodnota v jednom výpisu?

Přemýšlím v duchu konstruktoru pro pole řetězců ..

např

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

V případě, že se ukáže, že je syntaktický cukr druh věcí, já bych raději odpověď, že mohu použít v .Net 2.0 (Visual Studio 2005) a Visual Basic - když jsem zvědavý, jestli je to vůbec možné, aby nenechte se odradit; o)

Položena 25/11/2008 v 20:11
zdroj uživatelem
V jiných jazycích...                            


4 odpovědí

hlasů
5

Zkuste následující syntaxi:

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

Ale to může vyžadovat C # 3 (.NET 3.5)

Odpovězeno 25/11/2008 v 20:25
zdroj uživatelem

hlasů
7

Nemyslím si, že existuje způsob, jak to udělat po vybalení z krabice v VB.NET 2, ale můžete rozšířit obecný slovník, aby to fungovalo tak, jak si přejete.

Níže uvedená aplikace konzoly ilustruje toto:

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
Odpovězeno 26/11/2008 v 21:43
zdroj uživatelem

hlasů
77

Takhle:

Dim myDic As New Dictionary(Of String, String) From {{"1", "One"}, {"2", "Two"}}
Odpovězeno 07/07/2010 v 15:16
zdroj uživatelem

hlasů
-1

Vím, že to je starý příspěvek, ale tato otázka často přijde. Li

Zde je způsob, jak deklarovat a inicializovat slovníku v jednom příkazu:

Private __sampleDictionary As New Dictionary(Of Integer, String) From
{{1, "This is a string value"}, {2, "Another value"}}
Odpovězeno 17/02/2012 v 15:23
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more