📜  C#LinkedList

📅  最后修改于: 2020-10-31 10:24:12             🧑  作者: Mango

C#链接列表

C#链接列表类使用链表的概念。它使我们能够快速插入和删除元素。它可以具有重复的元素。在System.Collections.Generic命名空间中找到它。

它允许我们在前一个或最后一个索引处添加和删除元素。

C#链接列表

让我们看一个通用的LinkedList的例子类,使用AddLast()和AddFirst()方法存储元素,并使用for-each循环迭代元素。

using System;
using System.Collections.Generic;

public class LinkedListExample
{
    public static void Main(string[] args)
    {
        // Create a list of strings
        var names = new LinkedList();
        names.AddLast("Sonoo Jaiswal");
        names.AddLast("Ankit");
        names.AddLast("Peter");
        names.AddLast("Irfan");
        names.AddFirst("John");//added to first index

        // Iterate list element using foreach loop
        foreach (var name in names)
        {
            Console.WriteLine(name);
        }
    }
}

输出:

John
Sonoo Jaiswal
Ankit
Peter
Irfan

注意:与List不同,您不能使用Collection初始化程序创建LinkedList。

C#链接列表例子2

让我们看看通用LinkedList的另一个示例在特定节点之前和之后存储元素的类。为了获得特定的节点,我们正在调用Find()方法。

using System;
using System.Collections.Generic;

public class LinkedListExample
{
    public static void Main(string[] args)
    {
        // Create a list of strings
        var names = new LinkedList();
        names.AddLast("Sonoo");
        names.AddLast("Ankit");
        names.AddLast("Peter");
        names.AddLast("Irfan");
        
        //insert new element before "Peter"
        LinkedListNode node=names.Find("Peter");
        names.AddBefore(node, "John");
        names.AddAfter(node, "Lucy");

        // Iterate list element using foreach loop
        foreach (var name in names)
        {
            Console.WriteLine(name);
        }
    }
}

输出:

Sonoo
Ankit
John
Peter
Lucy
Irfan

如您在上面的输出中看到的,在“ Peter”之前和之后都添加了“ John”和“ Lucy”。