8

...或者我可以毫无问题地使用 ICollection 吗?

我的意思是,我不认为 ICollection 是为排序集合设计的,因为这可能会破坏为排序或未排序的 ICollection 对象设计的应用程序,但我不知道。

4

2 回答 2

11

我想说ICollection<T> 接口适合通过排序集合类型实现,因为可以枚举、添加、删除、清除和检查排序集合的内容。

作为一个反例,IList<T> 接口 可能不合适,因为与 ICollection<T> 不同,它假定集合是一个列表,其中元素可以添加到特定位置,如果集合没有意义它本身决定了每个元素的位置。

.NET Framework 中的排序集合类型(SortedList<TKey, TValue> Class , SortedDictionary<TKey, TValue> ClassSortedSet<T> Class)都实现 ICollection<T> 但不实现 IList<T>。

于 2012-10-29T23:41:13.563 回答
1

此接口可用于排序枚举:

IOrderedEnumerable<TElement>

https://docs.microsoft.com/en-us/dotnet/api/system.linq.iorderedenumerable-1?view=netcore-3.1

于 2020-01-14T09:16:12.470 回答