2011-08-18 10 views
7

Jestem PHP facet, aw PHP chciałbym zrobić coś jak następuje:Jaki jest poprawny sposób tworzenia tablicy asocjacyjnej w VB.NET?

$variable = array('0001'=>'value1', '0010'=>'value2'); 

Jestem całkiem nowy, VB.NET, więc jak mogę przetłumaczyć powyższy kod do VB.NET?

Chyba musiał użyć słownika:

Dim variable As New Dictionary(Of String, String) 
variable.Add("0001", "value1") 
variable.Add("0010", "value2") 

Czy to jest prawidłowy sposób to zrobić lub powinien używać czegoś innego do tego?

Odpowiedz

14

Jest to sposób, lub jeśli wolisz sposób jedno-liner inicjalizacji, można to zrobić:

Dim variable As New Dictionary(Of String, String) From { {"0001", "value1"}, {"0010", "value2"} } 

miarę który jest lepszy, to bardziej kwestia standardu kodowania, i/lub osobiste preferencje.

Biorąc pod uwagę rodzaj pojemnika, którego należy użyć, należy używać tylko tych z System.Collection.Generics w .NET, chyba że jesteś zmuszony w inny sposób. I Dictionary jest domyślnym kontenerem asocjacyjnym. Możesz zobaczyć alternatywy (np. SortedDictionary), jeśli pasuje więcej przypadków użycia.

+0

jakiejkolwiek alternatywnej wersji z jednym linerem lub linq? – Smith

0

Można użyć Collection:

Dim var As New Collection 
var.Add("vakue1", "0001") 
var.Add("value2", "0010") 

pętli wszystkich z:

For Each v As String In var 

Next 

innych sposobów leczenia przedmioty, spojrzeć na próbce w Collection(Of T) Class (MSDN).

+0

Jaka jest przewaga korzystania z kolekcji przy użyciu słownika? – PeeHaa

+4

@PeeHaa Słownik jest ogólny, więc słownik jest lepszy. Kolekcja to starsza klasa i zazwyczaj nie jest zalecana do nowego kodu. – MarkJ

+0

Ale ma metody, których brakuje w słowniku – Martin

Powiązane problemy