public void Merge(DocumentNodeMarkerSortedListOf <T> otherList, bool coalesce)
        {
            int count1 = this.list.Count;
            int count2 = otherList.list.Count;
            int num    = count1 + count2;

            if (this.list.Count == num)
            {
                return;
            }
            this.list.AddRange((IEnumerable <KeyValuePair <DocumentNodeMarker, T> >)otherList.list);
            int index1 = count1 - 1;
            int index2 = count2 - 1;
            int index3;

            for (index3 = num - 1; index3 >= 0 && index1 >= 0 && index2 >= 0; --index3)
            {
                this.list[index3] = this.list[index1].Key.CompareTo((object)otherList.list[index2].Key) < 0 ? otherList.list[index2--] : this.list[index1--];
            }
            for (; index2 >= 0; --index2)
            {
                this.list[index3] = otherList.list[index2];
                --index3;
            }
            if (!coalesce)
            {
                return;
            }
            this.CoalesceAncestry();
        }
        public override void Copy(int destinationIndex, DocumentNodeMarkerSortedListBase sourceList, int sourceIndex)
        {
            DocumentNodeMarkerSortedListOf <T> markerSortedListOf = (DocumentNodeMarkerSortedListOf <T>)sourceList;

            this.list[destinationIndex] = markerSortedListOf.list[sourceIndex];
        }
 public DocumentNodeMarkerSortedListOf(DocumentNodeMarkerSortedListOf <T> other)
     : this(other.Count)
 {
     this.list.AddRange((IEnumerable <KeyValuePair <DocumentNodeMarker, T> >)other.list);
 }