c#自定义简单链表通过IEnumerable接口实现内部迭代
2010-06-04 17:25
495 查看
/// <summary> /// LinkedListNode 自定义简单链表的节点定义 /// </summary> public class LinkedListNode { //当前节点值 private object _value; public object Value { get { return _value; } } //构造函数 public LinkedListNode(object value) { this._value = value; } //下一个节点 private LinkedListNode _next; public LinkedListNode Next { get { return _next; } internal set { _next = value; } } //当前节点 private LinkedListNode _prev; public LinkedListNode Prev { get { return _prev; } internal set { _prev = value; } } } using System.Collections; using System; /// <summary> /// LinkedList 自定义简单链表 /// 为使自定义简单链表实现内部迭代,使之实现IEnumerable接口 /// </summary> public class LinkedList:IEnumerable { //首节点 private LinkedListNode _first; public LinkedListNode First { get { return _first; } } //尾节点 private LinkedListNode _last; public LinkedListNode Last { get { return _last; } } //添加新节点 public void AddLast(object node) { LinkedListNode newNode = new LinkedListNode(node); if (_first == null) { _first = newNode; _last = _first; } else { _last.Next = newNode; _last = newNode; } } //定义IEnumerable接口中的GetEnumerator方法 public IEnumerator GetEnumerator() { LinkedListNode current = _first; while (current != null) { yield return current.Value; current = current.Next; //if (Convert.ToInt32(current.Value) == 1) //{ // yield break; //停止迭代 //} //else //{ // yield return current.Value; //返回集合的一个元素 // current = current.Next; //} } } } /* 调用^-^ */ LinkedList list1 = new LinkedList(); list1.AddLast(0); list1.AddLast(1); foreach(int i in list1) { Response.Write(i.ToString()); }
相关文章推荐
- c#自定义简单链表通过IEnumerable接口,范型实现内部迭代
- Jack's Notes5——foreach的本质(通过IEnumerable接口实现遍历)
- 【匿名内部类】通过内部类匿名实现接口
- JAVA实现最简单的双向链表、队列与栈(内部使用链表形式存储)
- C# 通过实现IEnumerable/IEnumerator接口 完成foreach遍历
- 使用内部单向链表实现的一个简单堆栈
- 接口测试—-中篇,通过django实现一个非常简单的记事本接口
- java通过Comparable接口实现字符串比较大小排序的简单实例
- 使用postgre数据库实现树形结构表的子-父级迭代查询,通过级联菜单简单举例
- 读写锁接口实例-通过ReadWriteLock实现一个简单的缓存
- 前端通过JS将从后端接口返回的大数求和的简单实现
- Structure.Hash(通过数组和链表实现一个简单的Hash)
- 使用postgre数据库实现树形结构表的子-父级迭代查询,通过级联菜单简单举例
- 使用Oracle数据库实现树形结构表的子-父级迭代(递归)查询和删除,通过级联菜单简单举例
- 通过junit/TestNG+java简单实现接口的自动化测试
- Extreme type erasure via std::function 通过模板(而不是继承)实现接口
- 通过实现ApplicationContextAware接口获取bean
- CCNP课堂练习三:vlan简单介绍及通过单交换机实现不同vlan间通讯 推荐
- Linux GCC下strstr的实现以及一个简单的Kmp算法的接口
- 内部类的作用?1、抽象类中包含一个内部接口如何实现与调用 ;2、接口中包含一个内部抽象类如何调用