New Features in C# 2.0—Collection Interfaces: What just happened?
Microsoft .NET Framework, ASP.NET, Visual C# (CSharp, C Sharp, C-Sharp) Developer Training, Visual Studio
What just happened?
The Pilgrim class changed just enough to implement the generic
IComparable interface. The linked list didn’t change at all, but the Node
class did undergo some changes to support the sorted list.
First, the Node class was marked to implement IComparable and was
constrained to hold only objects that themselves implement IComparable:
public class Node<T> : IComparable<Node<T>> where T:IComparable<T>
Second, Node added a reference to the previous node, in addition to the
next node (making this a doubly linked list):
private Node<T> next = null; private Node<T> prev = null;
The Node class must implement CompareTo and Equals. These are simple
to implement because the constraint ensures that the data you are comparing
also implements IComparable:
public int CompareTo(Node<T> rhs) { // this works because of the constraint data.CompareTo(rhs.data); }
|

