LinkedListNode<T> Class

 

Represents a node in a LinkedList<T>. This class cannot be inherited.

Namespace:   System.Collections.Generic
Assembly:  System (in System.dll)

System.Object
  System.Collections.Generic.LinkedListNode<T>

[ComVisibleAttribute(false)]
public sealed class LinkedListNode<T>

Type Parameters

T

Specifies the element type of the linked list.

NameDescription
System_CAPS_pubmethodLinkedListNode<T>(T)

Initializes a new instance of the LinkedListNode<T> class, containing the specified value.

NameDescription
System_CAPS_pubpropertyList

Gets the LinkedList<T> that the LinkedListNode<T> belongs to.

System_CAPS_pubpropertyNext

Gets the next node in the LinkedList<T>.

System_CAPS_pubpropertyPrevious

Gets the previous node in the LinkedList<T>.

System_CAPS_pubpropertyValue

Gets the value contained in the node.

NameDescription
System_CAPS_pubmethodEquals(Object)

Determines whether the specified object is equal to the current object.(Inherited from Object.)

System_CAPS_pubmethodGetHashCode()

Serves as the default hash function. (Inherited from Object.)

System_CAPS_pubmethodGetType()

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_pubmethodToString()

Returns a string that represents the current object.(Inherited from Object.)

Each element of the LinkedList<T> collection is a LinkedListNode<T>. The LinkedListNode<T> contains a value, a reference to the LinkedList<T> that it belongs to, a reference to the next node, and a reference to the previous node.

The following code example creates a LinkedListNode<T>, adds it to a LinkedList<T>, and tracks the values of its properties as the LinkedList<T> changes.

using System;
using System.Collections.Generic;

public class GenericCollection  {

   public static void Main()  {

      // Create a new LinkedListNode of type String and displays its properties.
      LinkedListNode<String> lln = new LinkedListNode<String>( "orange" );
      Console.WriteLine( "After creating the node ...." );
      DisplayProperties( lln );

      // Create a new LinkedList.
      LinkedList<String> ll = new LinkedList<String>();

      // Add the "orange" node and display its properties.
      ll.AddLast( lln );
      Console.WriteLine( "After adding the node to the empty LinkedList ...." );
      DisplayProperties( lln );

      // Add nodes before and after the "orange" node and display the "orange" node's properties.
      ll.AddFirst( "red" );
      ll.AddLast( "yellow" );
      Console.WriteLine( "After adding red and yellow ...." );
      DisplayProperties( lln );

   }

   public static void DisplayProperties( LinkedListNode<String> lln )  {
      if ( lln.List == null )
         Console.WriteLine( "   Node is not linked." );
      else
         Console.WriteLine( "   Node belongs to a linked list with {0} elements.", lln.List.Count );

      if ( lln.Previous == null )
         Console.WriteLine( "   Previous node is null." );
      else
         Console.WriteLine( "   Value of previous node: {0}", lln.Previous.Value );

      Console.WriteLine( "   Value of current node:  {0}", lln.Value );

      if ( lln.Next == null )
         Console.WriteLine( "   Next node is null." );
      else
         Console.WriteLine( "   Value of next node:     {0}", lln.Next.Value );

      Console.WriteLine();
   }

}


/*

This code produces the following output.

After creating the node ....
   Node is not linked.
   Previous node is null.
   Value of current node:  orange
   Next node is null.

After adding the node to the empty LinkedList ....
   Node belongs to a linked list with 1 elements.
   Previous node is null.
   Value of current node:  orange
   Next node is null.

After adding red and yellow ....
   Node belongs to a linked list with 3 elements.
   Value of previous node: red
   Value of current node:  orange
   Value of next node:     yellow

*/

Universal Windows Platform
Available since 8
.NET Framework
Available since 2.0
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top
Show: