【发布时间】:2015-05-26 04:20:16
【问题描述】:
我必须创建自己的循环列表,我使用的是通用列表。
首先我创建Node<D> 类,它代表数据和元素的下一个
private class Node<D> {
public D info;
public Node<D> next;
public Node() {
}
public Node(D p) {
info = p;
}
}
为了创建循环列表,我创建了circularList<T> 类。此类使用Node<> 作为元素的项。
这是CircularList<T> 类
class CircularList<T> : IEnumerable<T> {
public Node<T> start;
public Node<T> rear;
public int count = 0;
public CircularList(T firstItem) {
start = new Node<T>(firstItem);
rear = start;
rear.next = start;
}
public void Insert(T newItem) {
//Inserting code here
}
public void Update(T oldItem, T newItem) {
//Updating code is here
}
public void Delete(T theItem) {
//deleting code is here
}
}
当我开始使用foreach循环时
foreach(string item in CircularList<string>){
}
我收到一条错误消息,指出 circularlist 类需要 GetEnumerator()。
实际上我可以循环我所有的循环列表,但我使用的是do-while,我需要Node<T> 来启动循环。但我不想使用Node 和do-while。
如何创建 GetEnumerator()?
任何帮助表示赞赏。 :)
谢谢
注意:我真的-真的不明白IEnumerable和那些东西,请通过示例和解释来轻松。
【问题讨论】:
-
你是否从
IEnumerable接口实现了GetEnumerator()? foreach 需要GetEnumerator()。如果您尚未实施,您应该会收到compile时间错误。 -
是的,但我不知道该返回什么。
标签: c# foreach enumerator circular-list