如何在实例化时将值插入VB.NET Dictionary?

时间:2009-11-03 00:12:53

标签: vb.net dictionary c#-to-vb.net

有没有一种方法可以在创建时将值插入到VB.NET字典中?我可以,但不想,为每个项目执行dict.Add(int,“string”)。

基本上,我想用VB.NET做"How to insert values into C# Dictionary on instantiation?"

var dictionary = new Dictionary<int, string>
    {
        {0, "string"},
        {1, "string2"},
        {2, "string3"}
    };

3 个答案:

答案 0 :(得分:62)

如果使用Visual Studio 2010或更高版本,则应使用FROM关键字,如下所示:

Dim days = New Dictionary(Of Integer, String) From {{0, "string"}, {1, "string2"}}

请参阅:http://msdn.microsoft.com/en-us/library/dd293617(VS.100).aspx

如果您需要使用Visual Studio的早期版本,并且需要经常执行此操作,则可以继承Dictionary类并自行实现。

它可能看起来像这样:

Public Class InitializableDictionary
    Inherits Dictionary(Of Int32, String)

    Public Sub New(ByVal args() As KeyValuePair(Of Int32, String))
        MyBase.New()
        For Each kvp As KeyValuePair(Of Int32, String) In args
            Me.Add(kvp.Key, kvp.Value)
        Next
    End Sub

End Class

答案 1 :(得分:27)

这不是2010年之前的Visual Basic版本。

在VB2010及更高版本中,您可以使用FROM关键字。

Dim days = New Dictionary(Of Integer, String) From {{0, "Sunday"}, {1, "Monday"}}

<强>参考

http://msdn.microsoft.com/en-us/library/dd293617(VS.100).aspx

答案 2 :(得分:5)

你正在看的是C#的一个叫做“集合初始化器”的功能。这个功能也存在于VB中,但是在Visual Studio 2008发布之前就被删除了。它现在对你没有帮助,但是预计这将在Visual Studio 2010中提供。同时,你必须要按照老式方式进行 - 调用新实例的.Add()方法。