Ken*_*Lee 9 c# collections data-structures
我在用C#编写的项目中跟踪遗留代码.
我找到以下代码:
public class FooCollection : Collection<IFoo> {};
Run Code Online (Sandbox Code Playgroud)
我不明白为什么(以及何时)我们需要像这样创建我们自己的Collection类.
为什么不直接使用内置的集合(array
,List<T>
,Dictionary<K,V>
,...)
什么是数据结构Collection<T>
?阵列?或链表?
我不明白为什么(以及何时)我们需要像这样创建我们自己的Collection类.
你真的"不需要"; 你可以直接使用Collection<IFoo>
,但拥有一个特定的类可以帮助提高可读性.此外,它还允许您为此集合类型添加特定行为.此外,Collection<T>
该类允许通过覆盖虚方法重新定义大多数操作; 这允许您自定义标准集合方法的行为.
为什么不使用内置集合(数组,列表,字典,...)
数组具有固定长度,因此您无法添加或删除项目; 所以它并不是真正的等价物.Add
将值与键相关联,因此它具有明显不同的目的.InsertItem
只要您不需要自定义行为,就可以使用它; 此类不是为继承而设计的,因为它的方法是非虚拟的.
Collection中使用的数据结构是什么?阵列?或链表?
Add
充当另一个人的包装AddRange
.默认情况下,它使用a Dictionary<K,V>
(基于数组),但是您可以将任何其他List<T>
实现传递给构造函数,它将使用它.
归档时间: |
|
查看次数: |
5381 次 |
最近记录: |