是否可以创建一个空数组而不指定大小?
例如,我创建了:
String[] a = new String[5];
我们可以创建上面的字符串数组没有大小?
是否可以创建一个空数组而不指定大小?
例如,我创建了:
String[] a = new String[5];
我们可以创建上面的字符串数组没有大小?
当前回答
可以在运行时定义数组大小。
这将允许您动态地计算数组的大小。但是,一旦定义,大小是不可变的。
Array a = Array.CreateInstance(typeof(string), 5);
其他回答
性能规则CA1825:避免分配零长度的数组。
规则解释: 初始化零长度数组会导致不必要的内存分配。相反,通过调用array来使用静态分配的空数组实例。空方法。
在你的情况下:
var a = Array.Empty<string>();
你可以初始化它的大小为0,但你必须重新初始化它,当你知道大小是什么,因为你不能追加到数组。
string[] a = new string[0];
你可以:
string[] a = { String.Empty };
注意:OP意味着不需要指定大小,而不是使数组无大小
如果要使用一个事先不知道其大小的集合,有比数组更好的选择。
使用List<string>代替-它将允许您根据需要添加任意数量的项,如果您需要返回一个数组,请在变量上调用ToArray()。
var listOfStrings = new List<string>();
// do stuff...
string[] arrayOfStrings = listOfStrings.ToArray();
如果你必须创建一个空数组,你可以这样做:
string[] emptyStringArray = new string[0];
简单优雅!
string[] array = {}