public StringRebuilder ApplyChangesToStringRebuilder(INormalizedTextChangeCollection normalizedChanges, StringRebuilder source) { var doppelganger = this.GetDoppelgangerBuilder(); if (doppelganger != null) { return(doppelganger); } for (int i = normalizedChanges.Count - 1; (i >= 0); --i) { ITextChange change = normalizedChanges[i]; source = source.Replace(change.OldSpan, TextChange.NewStringRebuilder(change)); } return(source); }