IEnumerable Class List 的集合类型转换

IEnumerable Class Collection type conversion from List

我正在尝试了解 IEnumerable 集合。我有一个基本的工单 class,我想为它创建一个集合 class。

WorkOrder.cs

public class WorkOrder
{
    public string WONumber { get; private set; }
    public string WIP { get; private set; }

    public WorkOrder()
    {
        WONumber = "384327";
        WIP = "3483";
    }
}

我已经开始收集 class,但我在 this.workorders.GetEnumerator() 处遇到错误。它告诉我它不能将 List 转换为 Enumerator。

public class WorkOrderCollection : IEnumerable<WorkOrder>
{
    private List<WorkOrder> workorders = new List<WorkOrder>();

    public IEnumerable<WorkOrder> GetEnumerater() 
    { 
        return this.workorders.GetEnumerator(); 
    }

    public WorkOrderCollection()
    {
    }

    public void Add(WorkOrder aWorkOrder)
    {
       workorders.Add(aWorkOrder);
    }

    public void Remove(int index)
    {
        if (index > workorders.Count - 1 || index < 0)
    {
        System.Windows.Forms.MessageBox.Show("Index not valid!");
    }
    else
    {
        workorders.RemoveAt(index);
    }
}

这个我不是很了解。我需要做什么才能完成此转换?

不应该是:

public IEnumerable<WorkOrder> GetEnumerater() 
{ 
    return this.workorders.GetEnumerator(); 
}

public IEnumerator<WorkOrder> GetEnumerater() 
{ 
    return this.workorders.GetEnumerator(); 
}

IEnumerator 而不是 IEnumerable 作为 return 类型。

我不知道你的用例,但为什么不简单呢?:

public class WorkOrderCollection : List<WorkOrder>
{
}