首页 > 解决方案 > 在 C# 中实现我自己的泛型集合

问题描述

我正在尝试List<T>用 C# 编写自己的泛型集合 (),但对接口感到困惑。据我了解,为了创建自己的集合,我需要实现几个接口,如 ICollection、IList、IEnumerator、IEnumerable 等。但我无法真正理解我需要哪些接口。提前致谢

标签: c#generic-collections

解决方案


您必须IList<T>通过索引实现对集合项目的访问。IList<T>继承自ICollection<T>,IEnumerable<T>IEnumerable,所以无论如何你都会得到这些。

对于没有通过索引访问项目的更基本的集合,您可以实现继承并通过继承ICollection<T>来实现。IEnumerable<T>IEnumerable

可以另外实现IReadOnlyList<T>(或IReadOnlyCollection<T>分别),但这通常不是必需的。

您还应该考虑继承 from System.Collections.ObjectModel.Collection<T> ,这是推荐的方式,因为通常的样板接口实现已经为您完成,您可以专注于使您的集合特别的部分。


推荐阅读