.net 为什么BlockingCollection<;T>;不执行ICollection<;T>;?

.net 为什么BlockingCollection<;T>;不执行ICollection<;T>;?,.net,concurrent-collections,.net,Concurrent Collections,当前的实现如下所示: public class BlockingCollection<T> : IEnumerable<T>, ICollection, IEnumerable, IDisposable 公共类阻止集合:IEnumerable、ICollection、IEnumerable、IDisposable 有人知道为什么它不同时实现ICollection?这是一种激励…因为它没有实现 正如Hans评论的那样,Contains()方法无法以有效的线程安全方式实现

当前的实现如下所示:

public class BlockingCollection<T> : IEnumerable<T>, ICollection, IEnumerable, IDisposable
公共类阻止集合:IEnumerable、ICollection、IEnumerable、IDisposable

有人知道为什么它不同时实现
ICollection
?这是一种激励…

因为它没有实现

正如Hans评论的那样,Contains()方法无法以有效的线程安全方式实现。

根据它还实现了
IReadOnlyCollection
(.net 4.5+)。该类不是密封的,因此如果您确实需要它来实现,您可以手动继承和代理该实现。@UweKeim确定,但我也想向收藏中添加一些项目……请记住,
ICollection
ICollection
有很大不同。Contains()方法是交易破坏者,对ICollection至关重要,但无法以高效的线程安全方式实现它。请查看一个非常接近的问题“为什么ConcurrentBag不实现ICollection?”@HansPassant我同意。你想让我偷走你的内容还是直接删除?