不应该IDictionary<TKey, TValue>
自然延伸ISet<KeyValuePair<Tkey, TValue>>
,背后的理由是什么?这只是一个忽视吗?
我的第一个想法是它应该,因为枚举Dictionary<TKey, TValue>
自然会阻止写操作。对我来说意味着实现应该已经与ISet<T>
实现完全一致。另外,查看ICollection<KeyValuePair<TKey, TValue>>.Contains
和Dictionary<TKey, TValue>
的{{1}}实现,它们似乎在功能上完全相同。
但我确实注意到Java HashSet<T>
和c ++ Map<K,V>
也没有扩展它们的对应集接口。
如果正确,那么考虑性能和内存使用情况,您将如何进行具体实施?
(不是试图解决任何具体问题,只是一个思考练习)