C#声明空字符串数组

我需要声明一个空字符串数组,我正在使用这段代码。

string[] arr = new String[0]();

但我得到“方法名称预期”错误。

怎么了?

362180 次浏览

您的语法错误:

string[] arr = new string[]{};

string[] arr = new string[0];

如果你必须创建一个空数组,你可以这样做:

string[] arr = new string[0];

如果你不知道大小,那么你也可以使用List<string>,就像

var valStrings = new List<string>();


// do stuff...


string[] arrStrings = valStrings.ToArray();

您的语法无效。

string[] arr = new string[5];

这将创建arr,一个被引用的字符串数组,其中该数组的所有元素都null。(因为字符串是ABC_2的_)

此数组包含从arr[0]arr[4]的元素。new运算符用于创建数组并将数组元素初始化为其默认值。在本例中,所有数组元素都被初始化为null

Single-Dimensional Arrays (C# Programming Guide)

这些卷曲的东西有时很难记住,这就是为什么有优秀的文件

// Declare a single-dimensional array
int[] array1 = new int[5];

你可以试试这个。

string[] arr = {};

数组的构造函数是不同的。下面是一些创建空字符串数组的方法:

var arr = new string[0];
var arr = new string[]{};
var arr = Enumerable.Empty<string>().ToArray()

(抱歉,在手机上)

试试这个

string[] arr = new string[] {};

如果您使用的是.NET Framework 4.6和更高版本,则可以使用它们的一些新语法:

using System;  // To pick up definition of the Array class.


var myArray = Array.Empty<string>();

以下操作应该可以正常工作。

string[] arr = new string[] {""};