using System.Diagnostics.CodeAnalysis; namespace StgSharp { internal class LinkedListNode { internal readonly T _value; [AllowNull] internal LinkedListNode _previous; [AllowNull] internal LinkedListNode _next; internal LinkedList list; internal LinkedListNode() { } public LinkedListNode(T t) { _value = t; } public virtual LinkedListNode Previous { get { return _previous; } set { _previous = value; } } public LinkedListNode Next { get { return _next; } set { _next = value; } } public T Value { get { return _value; } } public void Remove() { _previous.Next = _next; _next.Previous = _previous; _next = default(LinkedListNode); _previous = default(LinkedListNode); } } }