首页 > Windows开发 > 详细

c# 泛型学习(二)

时间:2019-06-24 14:51:01      阅读:107      评论:0      收藏:0      [点我收藏+]

 使用泛型实现简单链表

 

首先创建一个泛型类LinkedListNode,该类型包含了一个属性Value,可以通过初始化进行赋值。还包含对上一个元素和下一个元素的引用。

  

    public class LinkedListNode<T>
        {
            public LinkedListNode(T value)
            {
                this.value = value;
            }
            public T value { get; private set; }

            public LinkedListNode<T> Next { get; internal set; }
            public LinkedListNode<T> Prev { get; internal set; }
        }

 

然后创建一个LinkedList类型,该类包含了对链表首尾元素的引用。还包含一个添加元素到尾部的方法,以及GetEnumrator()方法,以便通过foreach进行遍历元素。

        public class LinkedList<T> : IEnumerable<T>

          {
 
            public LinkedListNode<T> First { get; private set; }
         
     
public LinkedListNode<T> Last { get; private set; } public LinkedListNode<T> AddLast(T node) { var newNode = new LinkedListNode<T>(node); if (First == null) { First = newNode; Last = First; } else { LinkedListNode<T> previous = Last; Last.Next = newNode; Last = newNode; Last.Prev = previous; } return newNode; } public IEnumerator<T> GetEnumerator() { LinkedListNode<T> current = First; while (current != null) { yield return current.value; current = current.Next; } } IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } }

 

现在就可以对任意数据类型使用这个简易链表进行操作了。

 

 static void Main(string[] args)

        {

            LinkedList<int> arr = new LinkedList<int>();

            arr.AddLast(0);

            arr.AddLast(1);

            arr.AddLast(2);

            foreach (var item in arr)

            {

                Console.WriteLine(item);

            }

 

            LinkedList<string> sArr = new LinkedList<string>();

            sArr.AddLast("hello 1");

            sArr.AddLast("hello 2");

            sArr.AddLast("hello 3");

 

            foreach (var item in sArr)

            {

                Console.WriteLine(item);

            }

            Console.ReadKey();

        }

技术分享图片

 

c# 泛型学习(二)

原文:https://www.cnblogs.com/andonglu/p/11076655.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!