using System; using System.Linq; using System.Text; class Program { private static void Main() { var replaceCodes = new[] { "rown", "he", " j"}; var sb = new StringBuilder().Append("The quick brown fox jumps over the lazy dog"); var outStr = replaceCodes.Aggregate(sb, StringBilderCleaner).ToString(); Console.WriteLine(outStr); } static StringBuilder StringBilderCleaner(StringBuilder sbStr, string rmStr) { var startIndex = 0; var inProcces = false; for (var i = 0; i < sbStr.Length; i++) { if (inProcces) { var l = i - startIndex; if (l == rmStr.Length) { inProcces = false; sbStr.Remove(startIndex, l); } else inProcces = rmStr[l] == sbStr[i]; } else { if (sbStr[i] != rmStr[0]) continue; startIndex = i; inProcces = true; } } return sbStr ; } }