توضیح
با استفاده از الگوریتم به کار رفته در این تابع سرعت عمل جایگزین سازی متون افزایش خواهد یافت. اساس عملکرد این تابع استفاده از کلاس StringBuilder است. این تابع برای انجام عمل جایگزین سازی بر روی متون طولانی مناسب است.
کد C#
/// <summary>
/// Implements fast string replacing algorithm for CS
/// </summary>
public static string ReplaceEx(string original, string pattern, string replacement, StringComparison comparisonType)
{
if (original == null)
{
return null;
}
if (String.IsNullOrEmpty(pattern))
{
return original;
}
int lenPattern = pattern.Length;
int idxPattern = -1;
int idxLast = 0;
StringBuilder result = new StringBuilder();
while (true)
{
idxPattern = original.IndexOf(pattern, idxPattern + 1, comparisonType);
if (idxPattern < 0)
{
result.Append(original, idxLast, original.Length - idxLast);
break;
}
result.Append(original, idxLast, idxPattern - idxLast);
result.Append(replacement);
idxLast = idxPattern + lenPattern;
}
return result.ToString();
}