c# – 为列表包装器实现IEnumerable
发布时间:2020-12-15 06:23:28 所属栏目:百科 来源:网络整理
导读:我有一个班级,这只是一个名单上的包装, public class Wrapper{ public Listint TList {get;set;} public Wrapper() { TList=new Listint(); }} 我想让Wrapper继承自IEnumerable,以便我可以使用以下语法: Wrapper wrapper = new Wrapper() { 2,4,3,6 }; 任何
我有一个班级,这只是一个名单上的包装,
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(); } } (我也自由地将TList设置为私有的;通常建议集合类型属性是只读的,因此集合本身不能被类型外的任何代码所替代.) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |