Правильно, . NET Ядра String.Replace отличается от . NET Frameworks String.Replace .
Вы можете добавить отсутствующие функции с помощью собственные методы расширений, описанные в документах Microsoft .
Хорошей отправной точкой для этого является проверка реализации отсутствующих методов в . NET реализациях ядер .
Таким образом, вы сможете реализовать недостающий метод, соответствующий вашим потребностям.
Udate:
Давайте посмотрим на ваши отмеченные вызовы на SharpHa sh здесь и здесь :
hex.Replace(delimeter.ToString(), "", true, CultureInfo.CurrentCulture);
Похоже, целью этой операции является просто использование ignoreCase
для правильной обработки шестнадцатеричного ввода, культура должна быть установлена в этом случае, но может игнорироваться. Зная это, мы могли бы предоставить простую альтернативную реализацию в качестве метода расширения с использованием функций регулярных выражений:
public static class StringExtensions
{
public static string Replace(this string str, string oldValue, string newValue,
bool ignoreCase, CultureInfo culture)
{
return Regex.Replace(str, oldValue, newValue,
ignoreCase ? RegexOptions.IgnoreCase : RegexOptions.None);
}
}
Обратите внимание, что в этой реализации нет полной замены исходного метода , поскольку такие вещи, как
- Элементы языка регулярных выражений в строке
- Производительность
- Культура
не наблюдаются. Но для вашей проблемы решения должно быть достаточно. Если нет, попробуйте расширить и изменить решение, как требуется.