2009-11-03 20 views

cevap

54

ise Visual Studio 2010 kullanılarak ya da geç böyle FROM anahtar kelimeyi kullanmalıdır:

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

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

Visual Studio ve senin bir önceki sürümünü kullanmanız gerekiyorsa bunu sık sık yapmanız gerekir, sadece Dictionary sınıfından miras al ve kendin yap.

Böyle görünebilir:

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

. Teşekkürler, – onsaito

+0

Bu cevap şu anda yanlış. –

+1

@BrianWebster teşekkürler! Güncel ve önceki yaklaşımları yansıtmak için güncellenmiş yanıt. – brendan

5

Ne bakıyoruz "koleksiyonu ilklendiriciler" olarak adlandırılan C# bir özelliğidir. Bu özellik VB için de mevcuttu, ancak Visual Studio 2008'in yayımlanmasından önce kesildi. Şu anda size yardımcı olmuyor, ancak Visual Studio 2010'da kullanıma sunulması bekleniyor. Bu arada, Yeni örneğinizin — eski moda yolu .Add() yöntemini çağırsın.

25

Bu önceki 2010 VB2010 yılında

ve sonraki sürümlerinde, FROM kelime kullanabilirsiniz için Visual Basic olası versiyonları değildir.

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

Referans işleri

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

+0

Joel Coehoorn'un cevabında dediği gibi, FROM anahtar kelimesi VB2008'den çıkarılmış gibi görünüyor. Bunu daha önce kullanmış olduğumu hatırlıyorum, ama belki sadece Array-inizializers'i denedim. İyi. Http://msdn.microsoft.com/en-us/library/dd293617(VS.100).aspx – Stefan

+0

İşte benim her şeyden bilgimi aldığım bağlantıyı temiz ve referans +1 ile çalıştı –