Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用默认构造函数初始化数组_C#_Arrays - Fatal编程技术网

C# 使用默认构造函数初始化数组

C# 使用默认构造函数初始化数组,c#,arrays,C#,Arrays,我是否可以使用默认构造函数(或者更好,使用指定的构造函数)初始化一个类数组,而不必经过循环 那么,假设我有一个Person数组: var arr = new Person[10]; 现在,我应该通过循环所有人来初始化每个人 foreach(var p in arr) p = new Person(); 我可以避免循环吗?对于任意大小的数组,确实无法避免循环。您可以这样做: var arr = new Person[] {new Person(),new Person()...};

我是否可以使用默认构造函数(或者更好,使用指定的构造函数)初始化一个类数组,而不必经过循环

那么,假设我有一个
Person
数组:

var arr = new Person[10];
现在,我应该通过循环所有人来初始化每个

foreach(var p in arr)
    p = new Person();

我可以避免循环吗?

对于任意大小的数组,确实无法避免循环。您可以这样做:

var arr = new Person[] {new Person(),new Person()...};
Enumerable.Range(0,10).Select(i=>new Person()).ToArray();

但这也使用了underneat循环。

从@JonSkeetNote看一看,您的循环不会编译,但我们接受您的观点。(分配给循环变量不起作用,你需要一个“for”循环或类似的东西。)对于中到大的数组,这看起来比循环更糟糕。@Pierre Luccinoult对此没有异议,问题是如何避免循环。