为什么数组初始化器只允许用于数组?

Tom*_*asi 5 vb.net arrays collections

可能重复:
Visual Basic 2008中的集合初始化语法?

这不编译.

Dim Tom As New List(Of String) = {"Tom", "Tom2"}
Run Code Online (Sandbox Code Playgroud)

这样做

Dim Tom As String() = {"Tom", "Tom2"}
Run Code Online (Sandbox Code Playgroud)

IMO应该允许所有集合类型而不仅仅是数组.

Nic*_*ick 4

您无法在当前版本的 Visual Basic 中执行此操作,但 Visual Studio 2010 的下一版本允许使用以下语法:

Dim Tom As List(Of String) = new List(Of String) From {"Tom", "Tom2"}
Run Code Online (Sandbox Code Playgroud)

它使用新的From关键字

另一方面,C# 在 Visual Studio 2008 中包含了其集合初始值设定项语法。您可以阅读对象和集合初始值设定项(C# 编程指南) (MSDN)。