jellyfin/Emby.Naming/Extensions/StringExtensions.cs

32 lines
878 B
C#
Raw Normal View History

using System;
2018-09-12 17:26:21 +00:00
using System.Text;
namespace Emby.Naming.Extensions
{
public static class StringExtensions
{
2019-05-10 18:37:42 +00:00
// TODO: @bond remove this when moving to netstandard2.1
2018-09-12 17:26:21 +00:00
public static string Replace(this string str, string oldValue, string newValue, StringComparison comparison)
{
var sb = new StringBuilder();
var previousIndex = 0;
var index = str.IndexOf(oldValue, comparison);
while (index != -1)
{
sb.Append(str.Substring(previousIndex, index - previousIndex));
sb.Append(newValue);
index += oldValue.Length;
previousIndex = index;
index = str.IndexOf(oldValue, index, comparison);
}
sb.Append(str.Substring(previousIndex));
return sb.ToString();
}
}
}