【发布时间】:2023-03-23 20:55:02
【问题描述】:
在 C# 中获取类型化的只读空列表的标准方法是什么,或者有什么方法?
ETA:对于那些问“为什么?”的人:我有一个返回 IList 的虚拟方法(或者更确切地说,是回复后的 IEnumerable),默认实现是空的。无论列表返回什么都应该是只读的,因为写入它会是一个错误,如果有人尝试这样做,我想立即停止并着火,而不是等待错误稍后以某种微妙的方式出现。
【问题讨论】:
-
你将如何处理只读的空列表?只是好奇。
-
我猜一个空的
IEnumerable<T>可能是正确的答案 - 真的需要 IList吗?还是只是一个空的只读集合? -
只是好奇,你为什么需要一个空的只读列表?
-
IEnumerable<T>在这种情况下可以正常工作,谢谢。 -
如果
IList只是一个序列,我们就不需要它,我们只需要使用IEnumerable。如果您想要任何ICollection方法,则至少需要ICollection,如果您想要索引访问,则至少需要IList。ICollection<T>中的修改操作是可选的,这就是为什么有IsReadOnly()以及为什么Add()等被记录为抛出NotSupportedException。
标签: c# collections generic-collections