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可能也比较慢。 –