当前位置:  开发笔记 > 编程语言 > 正文

是否可以使用String键/值对初始化New System.Collections.Generic.Dictionary?

如何解决《是否可以使用String键/值对初始化NewSystem.Collections.Generic.Dictionary?》经验,为你挑选了3个好方法。

是否可以System.Collections.Generic.Dictionary在一个语句中使用String键/值对创建和初始化对象?

我正在思考一个字符串数组的构造函数.

例如

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

如果这是一个语法糖类的东西,我更喜欢我可以在.Net 2.0(Visual Studio 2005)和Visual Basic中使用的答案 - 虽然我很好奇它是否可能如此不要让那让你失望; o)



1> jgauffin..:

像这样:

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


从VB.NET 10开始提供

2> KevB..:

我不认为有一种方法可以在VB.NET 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



3> 小智..:

试试这个语法:

Dictionary dict = new Dictionary()
{
  { "pi", 3.14},
  { "e", 2.71 }
 };

但这可能需要C#3(.NET 3.5)

推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有