c# – 为列表包装器实现IEnumerable

前端之家收集整理的这篇文章主要介绍了c# – 为列表包装器实现IEnumerable前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个班级,这只是一个名单上的包装,
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设置为私有的;通常建议集合类型属性是只读的,因此集合本身不能被类型外的任何代码所替代.)

原文链接:https://www.f2er.com/csharp/95745.html

猜你在找的C#相关文章