I did some simple tests, and it seems ok.
var myDoubleListString = new DoublyLinkedList<string>();
var myDoubleListInt = new DoublyLinkedList<int>();
var myDoubleListObj = new DoublyLinkedList<object>();
myDoubleListString.AddFirst("One");
myDoubleListString.AddLast("Two");
myDoubleListString.AddLast("Three");
if (myDoubleListString.Count > 0)
{
var last = myDoubleListString.Tail;
var head = myDoubleListString.Head;
var two = head.NextNode;
var three = two.NextNode;
var threePrevious = three.PreviousNode;
}
myDoubleListInt.AddFirst(1);
myDoubleListObj.AddFirst("Object 1");
var myArray1 = myDoubleListString.ToArray();
var myArray2 = myDoubleListInt.ToArray();
var myArray3 = myDoubleListObj.ToArray();
Debug.Print("length = " + myArray1.Length);
Debug.Print("length = " + myArray2.Length);
Debug.Print("length = " + myArray3.Length);
var lastNode = myDoubleListString.Tail;
while (lastNode != null)
{
Debug.Print(lastNode.Value);
lastNode = lastNode.PreviousNode;
}
To get my test working, I had to change the access modifiers to public of:
public class Node
public Node Head
public Node Tail