《随笔三十四》——C#中的 “ 解析 泛型 “ LinkedList <T> 类 ” 中的方法和属性”

本文详细介绍了C#中的LinkedList类,包括其构造函数、属性(Count, First, Last)和方法(AddAfter, AddBefore, AddFirst, AddLast等)。LinkedList是一个双向链表,适用于快速插入元素,但查找中间元素较慢。文章还提到了LinkedListNode节点类,并讨论了链表的优缺点。" 78807060,5644337,Python学习:线程池实现多线程共享变量,"['Python', '编程语言', '线程池']
摘要由CSDN通过智能技术生成

目录

LinkedList Constructors

Propertys

LinkedList.Count

LinkedList.First

LinkedList.Last

Methods

LinkedList.AddAfter

LinkedList.AddBefore

LinkedList.AddFirst

LinkedList.AddLast

LinkedList.Clear

LinkedList.Contains

LinkedList.Find

LinkedList.FindLast

LinkedList.Remove 

LinkedList.RemoveFirst

LinkedList.RemoveLast


点击这里进入官网了解更多

LinkedList <T> 类 表示双向链表。

该类在 System.Collections.Generic 命名空间。

有关 LinkedListNode<T> Class 类的详情点击这里, 该类是 LinkedList <T> 类 中的 节点。

LinkedList <T> 是一个双向链表, 其元素指向它前面和后面的元素, 如图所示。这样就可以通过移动到下一个元素可以正向遍历整个链表, 通过移动到前一个元素可以反向遍历整个链表。

链表的优点:

  • 如果将元素插入列表的中间位置, 使用链表就会非常快。在插入一个元素时, 只需要修改上一个元素的Next引用和下一个元素的Previous引用, 使它们引用所插入的元素。在 List<T> 类中, 插入一个元素时, 需要移动该元素后面的所有元素。 

链表的缺点:

  • 链表的元素只能一个接一个地访问, 这需要较长的时间来查找位于链表中间或尾部的元素。 

LinkedList<T> Constructors


public LinkedList ();
public LinkedList (System.Collections.Generic.IEnumerable<T> collection);
protected LinkedList (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
  • 如果LinkedList<T>为空,则 First 并 Last 属性包含null
  • 如果 collection 没有元素,则 LinkedList <T>为空,First  和 Last  属性包含 null。
        static void Main(string[] args)
        {
            string[] temp = { "huang", "cheng", "tao" };
            var numbers = new LinkedList<string>(); // 使用默认构造函数初始化,该实例为空并且具有默认初始容量。  
            // 该实例包含从指定集合复制的元素并且具有足够的容量来容纳所复制的元素。
            var queueCopy = new LinkedList<string>(temp);
            var queueCopy2 = new LinkedList<string>(new string[] { "sda", "da" });          
        }

Propertys


LinkedList<T>.Count

public int Count { get; }
  • 获取 LinkedList<T>  中所有的元素数。
  • 此操作的复杂度为 O(1)。

LinkedList<T>.First

public System.Collections.Generic.LinkedListNode<T> First { get; }
        static void Main(string[] args)
        {        
            var numbers = new LinkedList<string>(new string[] { "huang","cheng","tao"}) ;
            WriteLine(numbers.First.Value);
        }

LinkedList<T>.Last

  • 获取 LinkedList<T> 的最后一个节点元素。
  • 返回的是 LinkedList <T>的中的 最后一个 LinkedListNode<T> 类型的元素值。
  • 如果LinkedList<T>为空,First 并Last 属性包含null
  • 检索此属性的值的运算复杂度为 O(1)。
        static void Main(string[] args)
        {        
            var numbers = new LinkedList<string>(new string[] { "huang","cheng","tao"}) ;
            WriteLine(numbers.Last.Value);
        }

Methods


LinkedList<T>.AddAfter

public void AddAfter (System.Collections.Generic.LinkedListNode<T> node, 
System.Collections.Generic.LinkedListNode<T> newNode);
  • 在  
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值