private string PerformReplacements(string input, List<Replacement> replacements)
{
int index;
var result = input;
for (index = result.Length; index >= 0; index--)
{
foreach (var replacement in replacements)
{
if (replacement.Start != index)
{
continue;
}
var before = result.Substring(0, replacement.Start);
var after = result.Substring(replacement.Start + replacement.Length);
result = before + replacement.Value + after;
}
}
return result;
}