c# - 在 C# 中实现我自己的泛型集合
问题描述
我正在尝试List<T>
用 C# 编写自己的泛型集合 (),但对接口感到困惑。据我了解,为了创建自己的集合,我需要实现几个接口,如 ICollection、IList、IEnumerator、IEnumerable 等。但我无法真正理解我需要哪些接口。提前致谢
解决方案
您必须IList<T>
通过索引实现对集合项目的访问。IList<T>
继承自ICollection<T>
,IEnumerable<T>
和IEnumerable
,所以无论如何你都会得到这些。
对于没有通过索引访问项目的更基本的集合,您可以实现继承并通过继承ICollection<T>
来实现。IEnumerable<T>
IEnumerable
您可以另外实现IReadOnlyList<T>
(或IReadOnlyCollection<T>
分别),但这通常不是必需的。
您还应该考虑继承 from System.Collections.ObjectModel.Collection<T>
,这是推荐的方式,因为通常的样板接口实现已经为您完成,您可以专注于使您的集合特别的部分。
推荐阅读
- python - 百分比堆积条形图熊猫
- json - 在groovy中正确执行cURL命令
- python - 让一个函数等到它返回'n'个结果
- validation - Salesforce 机会验证规则
- python - 无法在 win10 上的 opencv 4.X 上运行 self.tracker = cv2.Tracker_create()
- python - 突出显示 tkinter 画布中单击的项目?
- html - 如何在不破坏其他 CSS 属性的情况下正确地将 CSS 中的 background-image 属性转换为 HTML 代码?
- c# - 尝试使用 NEST 在 c# 中搜索我的所有弹性搜索文档(未指定字段)中存在的任何单词
- c - C 中的 if (!string) 是什么意思
- javascript - 我可以使用状态值来引用本地存储在项目中的查找表中的值吗?