public static MergedEdge MergeSameEdges(IEnumerable <Edge> edges) { if (edges == null) { return(null); } if (edges.Count() == 0) { return(null); } if (edges.Count() == 1) { return(new MergedEdge(edges.First())); } var list = edges.ToList(); MergedEdge ret = new MergedEdge(edges.First()); for (int i = 1; i < list.Count; i++) { ret = ret.MergeWith(list[i]); } return(ret); }