2009-11-03 7 views

risposta

54

Se si utilizza Visual Studio 2010 o successivo si dovrebbe usare la parola chiave FROM in questo modo:

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

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

Se è necessario utilizzare una versione precedente di Visual Studio e si è necessario farlo frequentemente si potrebbe semplicemente ereditare dalla classe Dizionario e implementarlo da soli.

Potrebbe sembrare qualcosa di simile:

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

che funziona. Grazie, – onsaito

+0

Questa risposta non è corretta ora. –

+1

@BrianWebster grazie! risposta aggiornata per riflettere approcci attuali e precedenti. – brendan

5

Quello che stai guardando è una caratteristica di C# denominata "inizializzatori raccolta". La funzionalità esisteva anche per VB, ma è stata tagliata prima del rilascio di Visual Studio 2008. Non ti aiuta in questo momento, ma dovrebbe essere disponibile in Visual Studio 2010. Nel frattempo, dovrai fallo alla vecchia maniera — chiama il metodo .Add() della tua nuova istanza.

25

questo non è possibile versioni di Visual Basic precedenti al 2010.

In VB2010 e successive, è possibile utilizzare la parola chiave FROM.

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

Riferimento

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

+0

Come dice Joel Coehoorn nella sua risposta, sembra che la parola chiave FROM sia stata estratta da VB2008. Ricordo con forza che l'ho usato prima, ma forse ho provato solo inizializzatori di array. Bene. Ecco il link che ho ricevuto da me in ogni caso: http://msdn.microsoft.com/en-us/library/dd293617(VS.100).aspx – Stefan

+0

Questo è ciò che ha funzionato per me in modo pulito e con riferimento +1 –

Problemi correlati