public IList Apply(IList original) { ArrayList right = new ArrayList(); foreach (Hunk hunk in this) { if (hunk.Same) right.AddRange(new Range(original, hunk.Start, hunk.Count)); else right.AddRange(hunk.Right); } return right; }