是否有像ICollection <t>这样的接口,但是是为有序集合设计的?</t>

时间:2012-10-29 23:31:43

标签: c# .net interface

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

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

2 个答案:

答案 0 :(得分:11)

我认为ICollection<T> Interface适合按排序集合类型实现,因为可以枚举,添加,删除,清除已排序的集合并检查其内容。

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

.NET Framework中的已排序集合类型(SortedList<TKey, TValue> ClassSortedDictionary<TKey, TValue> ClassSortedSet<T> Class)都实现了ICollection&lt; T&gt;但不是IList&lt; T&gt;。

答案 1 :(得分:1)

此接口可用于对枚举数进行排序:

IOrderedEnumerable<TElement>

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