我想知道是否有 IList<T>
由像 HashSet<T>
这样的散列支持的实现但提供索引访问?
明确地说,我不关心如何实现,只是想知道是否有人知道它是否已经可用。
最佳答案
你可以实现 IList<T>
自己并保留两个后备收藏品 - List<T>
和一个HashSet<T>
.基本上让 Visual Studio 为 IList<T>
中的所有内容提供“抛出异常”实现,然后针对每种方法确定是要将其代理到列表还是集合。
当然你必须小心重复等(定义 Add(x)
、 Add(x)
、 Remove(x)
、 Contains(x)
的行为——你最终可能会在列表中而不是集合中找到它)但这不会太难。
关于c# - 是否有 IList<T> 的实现,其中 Contains(T) 是 O(1) 操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1443188/