2013-04-26 124 views
2

我可以使用默認構造函數(甚至更好,指定的)初始化一個類的數組而不經過循環嗎?使用默認構造函數初始化數組

所以,讓我們說我有Person數組:

var arr = new Person[10]; 

現在,我應該通過所有這些循環初始化每個Person

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

我可以避免循環嗎?

+3

從@JonSkeet看看這個[回覆](http://stackoverflow.com/questions/4839470/array-initialization-with-default-constructor) – 2013-04-26 18:49:26

+0

請注意,你的循環不會編譯,但我們採取你的觀點。 (分配給循環變量將不起作用,你需要一個'for'循環或者其他相同的東西。) – 2013-04-26 18:51:45

回答

2

對於任意大小的數組,你真的無法避免循環。你可以做這樣的事情:

Enumerable.Range(0,10).Select(i=>new Person()).ToArray(); 

但它也使用循環underneat。

0
var arr = new Person[] {new Person(),new Person()...}; 
+4

對於中型到大型的數組,這看起來比誠實地循環更糟糕。 – 2013-04-26 18:50:39

+1

@ Pierre-LucPineault沒有提出異議,問題是如何避免循環。 – Woot4Moo 2013-04-26 19:14:24

相關問題