2009-11-03 45 views

回答

54

如果使用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 
+0

工程。谢谢, – onsaito 2009-11-03 00:59:03

+0

这个答案现在不正确。 – 2013-02-05 17:38:03

+1

@BrianWebster谢谢!更新的回应反映当前和以前的方法。 – brendan 2013-02-05 20:49:11

5

您要查找的是被称为“集合初始化” C#的特征。该功能也适用于VB,但是在Visual Studio 2008发布之前就已经被切断了。它现在对您没有任何帮助,但预计在Visual Studio 2010中可用。同时,您必须按照老式的方式—调用你的新实例的.Add()方法。

25

这不是2010年之前

在VB2010和更高版本,可以使用FROM关键字的Visual Basic的可能版本。

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

参考

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

+0

正如Joel Coehoorn在他的回答中所说,似乎FROM关键字已经从VB2008中撤出。我强烈地记得我以前使用过这个,但也许我只是尝试过数组化。好。这里是我从任何地方得到我的信息的链接:http://msdn.microsoft.com/en-us/library/dd293617(VS.100).aspx – Stefan 2009-11-03 01:00:58

+0

这是我干净的工作,并参考+1 – 2013-09-27 12:59:52