手机
当前位置:查字典教程网 >编程开发 >C#教程 >c# 自定义泛型链表类的详解
c# 自定义泛型链表类的详解
摘要:(1)自定义泛型链表类。复制代码代码如下:publicclassGenericList{privateclassNode{//当前节点值pr...

(1)自定义泛型链表类。

复制代码 代码如下:

public class GenericList<T>

{

private class Node

{

//当前节点值

private T data;

public T Data

{

get { return data; }

set { data = value; }

}

//节点的下一个节点

private Node next;

public Node Next

{

get { return next; }

set { next = value; }

}

//节点的上一个节点

private Node last;

public Node Last

{

get { return last; }

set { last = value; }

}

public Node(T t)

{

data = t;

next = null;

}

}

private Node firstNode;

private Node lastNode;

public void AddNode(T t)

{

Node node = new Node(t);

node.Last = lastNode;

if (lastNode != null)

lastNode.Next = node;

lastNode = node;

if (firstNode == null)

{

firstNode = node;

}

}

//要在自定义泛型集合上迭代

//必须实现该接口

public IEnumerator<T> GetEnumerator()

{

Node current = firstNode;

while (current != null)

{

//yield return表达式以枚举对象返回

yield return current.Data;

current = current.Next;

}

}

}

(2)自定义泛型链表类调用。

复制代码 代码如下:

class GenericListTestTwo

{

static void Main()

{

// 类型参数为int

GenericList<int> list = new GenericList<int>();

for (int a = 0; a < 5; a++)

{

list.AddNode(a);

}

foreach (int i in list)

{

System.Console.WriteLine(i);

}

//类型参数为string

GenericList<string> strList = new GenericList<string>();

strList.AddNode("First Node");

strList.AddNode("Second Node");

foreach(string s in strList)

{

System.Console.WriteLine(s);

}

Console.Read();

}

}

输出如下:

c# 自定义泛型链表类的详解1

【c# 自定义泛型链表类的详解】相关文章:

解决C# winForm自定义鼠标样式的两种实现方法详解

c# 共享状态的文件读写实现代码

自定义实现Json字符串向C#对象转变的方法

深入c#工厂模式的详解

C#词法分析器之词法分析的使用详解

C# Word 类库的深入理解

c# winform读取xml文件创建菜单的代码

c#数组详解

c# 引用类型与值类型的区别详解

解决C#程序只允许运行一个实例的几种方法详解

精品推荐
分类导航