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>
{
}
我正在尝试了解 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>
{
}