protected LGSPMatchesList(LGSPMatchesList <Match, MatchInterface> that) { producer = that.producer; count = that.count; Match curThat = that.root; Match cur = root = (Match)curThat.Clone(); curThat = curThat.next; for (int i = 1; i < that.count; i++, curThat = curThat.next) { cur.next = (Match)curThat.Clone(); cur = cur.next; } last = cur; }
protected LGSPMatchesList(LGSPMatchesList <Match, MatchInterface> that, IDictionary <IMatch, IMatch> originalToClone) { producer = that.producer; count = that.count; Match curThat = that.root; Match cur = root = (Match)curThat.Clone(); originalToClone.Add(curThat, cur); curThat = curThat.next; for (int i = 1; i < that.count; i++, curThat = curThat.next) { cur.next = (Match)curThat.Clone(); originalToClone.Add(curThat, cur.next); cur = cur.next; } last = cur; }