String substitution Replace simply replaces the first string match
public static string Replace(string source, string match, string replacement) { char[] sArr = source.ToCharArray(); char[] mArr = match.ToCharArray(); char[] rArr = replacement.ToCharArray(); int idx = IndexOf(sArr, mArr); if (idx == -1) { return source; } else { return new string(sArr.Take(idx).Concat(rArr).Concat(sArr.Skip(idx + mArr.Length)).ToArray()); } } /// <summary> /// Find an array of characters in another 1 The matching position in an array of characters /// </summary> /// <param name="source"> Source character array </param> /// <param name="match"> Array of matching characters </param> /// <returns> The matched position is returned if no match is found -1</returns> private static int IndexOf(char[] source, char[] match) { int idx = -1; for (int i = 0; i < source.Length - match.Length; i++) { if (source[i] == match[0]) { bool isMatch = true; for (int j = 0; j < match.Length; j++) { if (source[i + j] != match[j]) { isMatch = false; break; } } if (isMatch) { idx = i; break; } } } return idx; }