c# 自定义泛型链表类的详解_C#教程-查字典教程网
c# 自定义泛型链表类的详解
c# 自定义泛型链表类的详解
发布时间:2016-12-28 来源:查字典编辑
摘要:(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#教程学习
    热门C#教程学习
    编程开发子分类