List<T>
實現IReadOnlyCollection<T>
接口並提供AsReadOnly()
方法,它返回ReadOnlyCollection<T>
(這又實現IReadOnlyCollection<T>
)。列表<T> .AsReadOnly()與IReadOnlyCollection <T>
AsReadyOnly()
的用法和原因是什麼?它存在一種或兩種邊緣情況的氣味,其中僅返回列表IReadOnlyCollection<T>
就不夠好。
起初我雖然可能是爲了防止鑄造成本,但看起來你可以用ReadOnlyCollection<T>
的Items
訪問器來做到這一點。
順便說一句。 ReadOnlyCollection<T>
類型的文檔顯示爲
爲通用只讀集合提供基類。
,在我的頭,具有描述爲
構造衝突初始化(...)類,它是圍繞指定列表中的只讀包裝的新實例。
更新: 我沒有看到ReadOnlyCollection<T>
的Items
保護。
我更喜歡'.ToArray()'。更簡單的IMO! –
@KierenJohnstone可能也比較慢。 –