C# CopyConstructor

A couple of things which become handy when writing CopyConstructors in C#:

Throw exception when the CopyConstructor is called with null reference:

if (other == null) throw new ArgumentNullException("CopyConstructor called with null reference.");

Create deep-copy of Lists (example based on List):

_nodes = other._nodes.ConvertAll(node => new Node(node));