public CoordinateOperationCrsPathInfo Append(ICrs node, ICoordinateOperationInfo edge)
        {
            if (node == null)
            {
                throw new ArgumentNullException("node");
            }
            if (edge == null)
            {
                throw new ArgumentNullException("edge");
            }
            Contract.Ensures(Contract.Result <CoordinateOperationCrsPathInfo>() != null);
            var nodes = new ICrs[CrsNodesArray.Length + 1];

            CrsNodesArray.CopyTo(nodes, 0);
            nodes[nodes.Length - 1] = node;
            var edges = new ICoordinateOperationInfo[OperationEdgesArray.Length + 1];

            OperationEdgesArray.CopyTo(edges, 0);
            edges[edges.Length - 1] = edge;
            return(new CoordinateOperationCrsPathInfo(nodes, edges));
        }
 public override string ToString()
 {
     return(String.Format("{0} to {1}: {2}", From, To, String.Join(",", OperationEdgesArray.AsEnumerable())));
 }