我可以使用默認構造函數(甚至更好,指定的)初始化一個類的數組而不經過循環嗎?使用默認構造函數初始化數組
所以,讓我們說我有Person
數組:
var arr = new Person[10];
現在,我應該通過所有這些循環初始化每個Person
。
foreach(var p in arr)
p = new Person();
我可以避免循環嗎?
我可以使用默認構造函數(甚至更好,指定的)初始化一個類的數組而不經過循環嗎?使用默認構造函數初始化數組
所以,讓我們說我有Person
數組:
var arr = new Person[10];
現在,我應該通過所有這些循環初始化每個Person
。
foreach(var p in arr)
p = new Person();
我可以避免循環嗎?
對於任意大小的數組,你真的無法避免循環。你可以做這樣的事情:
Enumerable.Range(0,10).Select(i=>new Person()).ToArray();
但它也使用循環underneat。
var arr = new Person[] {new Person(),new Person()...};
對於中型到大型的數組,這看起來比誠實地循環更糟糕。 – 2013-04-26 18:50:39
@ Pierre-LucPineault沒有提出異議,問題是如何避免循環。 – Woot4Moo 2013-04-26 19:14:24
從@JonSkeet看看這個[回覆](http://stackoverflow.com/questions/4839470/array-initialization-with-default-constructor) – 2013-04-26 18:49:26
請注意,你的循環不會編譯,但我們採取你的觀點。 (分配給循環變量將不起作用,你需要一個'for'循環或者其他相同的東西。) – 2013-04-26 18:51:45