C#是否有类似于VB.NET的简短数组声明方式,如{"string1","string2"}?

6
在VB.NET中,您可以像这样实例化并立即使用数组:
``` Dim b as Boolean = {"string1", "string2"}.Contains("string1") ```
然而,在C#中,似乎您必须这样做:
``` bool b = new string[] { "string1", "string2" }.Contains("string1"); ```
C#是否有等效的简写语法,可以使用类型推断确定数组类型,而无需显式声明它?
2个回答

19

隐式类型数组不需要包括它们的类型,只要可以推断出来即可:

bool b = new [] { "string1", "string2" }.Contains("string1");

你可以在这里阅读更多相关信息:http://msdn.microsoft.com/zh-cn/library/bb384090.aspx - Pete
啊,太糟糕了。我本来希望甚至不需要指定new [],但我想这就是现实。谢谢。 - oscilatingcretin

3

这被称为隐式类型数组

您可以创建一个隐式类型数组,其中数组实例的类型是从数组初始化程序中指定的元素推断出的。任何隐式类型变量的规则也适用于隐式类型数组。

static void Main()
    {
        var a = new[] { 1, 10, 100, 1000 }; // int[] 
        var b = new[] { "hello", null, "world" }; // string[] 
    }

您可以将其用于不规则数组

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