在VB.NET中创建关联数组的正确方法是什么?

11

我是一名PHP开发人员,在PHP中我会这样做:

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

我对VB.NET还很陌生,那么我该如何将上面的代码翻译成VB.NET呢?

我认为我需要使用字典:

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

这样做是正确的吗?还是我应该使用其他方法?

2个回答

17

这是一种初始化的方式,如果你喜欢一行代码的方式,可以这样做:

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

就哪个更好而言,这更多是编码标准或个人偏好的问题。
在考虑使用哪种容器时,除非另有强制要求,否则应仅使用.NET中的System.Collection.Generics容器。而Dictionary是默认的关联容器。如果有更适合您用例的备选方案(例如SortedDictionary),则可以查看它们。

有没有任何替代的一行代码或者 LINQ 版本? - Smith

1

你可以使用集合

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

循环遍历所有内容:

For Each v As String In var

Next

如果您想了解其他处理项的方法,请查看Collection(Of T) ClassMSDN)中的示例。


使用集合相比使用字典有什么优势? - PeeHaa
4
@PeeHaa 的意思是“字典”(Dictionary),这是一个通用类,因此使用字典会更好。而“集合”(Collection)是一个比较老的类,在新的代码中通常不建议使用。 - MarkJ
但它有一些在字典中缺失的方法。 - Martin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接