我有一个班级,这只是一个名单上的包装,
public class Wrapper { public List<int> TList {get;set;} public Wrapper() { TList=new List<int>(); } }
我想让Wrapper继承自IEnumerable,以便我可以使用以下语法:
Wrapper wrapper = new Wrapper() { 2,4,3,6 };
任何想法如何实现IEnumerable< T>或IEnumerable的哪个接口,以及如何定义方法体?
解决方法
如果您实现
ICollection<int>
,您将获得所需的功能.
更正:实际上只需要实现IEnumerable或IEnumerable< T>并在您的课堂中添加一个公共添加方法:
public class Wrapper : IEnumerable<int> { public List<int> TList { get; private set; } public Wrapper() { TList = new List<int>(); } public void Add(int item) { TList.Add(item); } public IEnumerator<int> GetEnumerator() { return TList.GetEnumerator(); } System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return GetEnumerator(); } }