2010-07-07 43 views
5

如果我有一個方法或返回IEnumerable<SomeType>,導致沒有數據的屬性, 是它更有效地返回一個空數組new SomeType[0]或者是它更好地返回一個空列表new List<SomeType>()還是有偶數更好的解決方案(國際海事組織建立一個與泛型自己的類型可以是這樣的解決方案,但在我看來有點矯枉過正)?的IEnumerable沒有數據

該陣列是我最喜歡的,但您對此有何看法?

+0

應該是空列表,因爲它對於運行時更安全。 – thethanghn 2010-07-07 10:51:07

+4

@thethanghn:你能解釋一下「安全的運行時」是什麼意思嗎?空列表不如空數組安全,因爲*空列表可以被突變爲空不再*。一個空陣列不能。 – 2010-07-07 16:44:49

回答

15
+0

每次調用屬性時都比創建新對象更好。 – 2010-07-07 09:05:25

+1

我仍然覺得很奇怪,它是Enumerable.Empty ()而不是Enumerable .Empty()。 – spender 2010-07-07 12:11:55

+0

也許如果它是「Enumerable .Empty()」,那麼將爲每個使用的類型(如果尚未初始化)和「Enumerable.Empty ()」調用Enumerable 的類構造函數,這可以防止只是一個想法,我對泛型沒有深刻的瞭解)。 – HCL 2010-07-10 14:46:35