Вы можете создать метод расширения для строки:
public static string RemoveDiacritics(this string @this) {
var normalizedString = @this.Normalize(System.Text.NormalizationForm.FormD);
var stringBuilder = new StringBuilder();
foreach (var c in normalizedString) {
var unicodeCategory = CharUnicodeInfo.GetUnicodeCategory(c);
if (unicodeCategory != UnicodeCategory.NonSpacingMark) {
stringBuilder.Append(c);
}
}
return stringBuilder.ToString().Normalize(NormalizationForm.FormC);
}
И тогда вы можете сказать input.RemoveDiacritics()
.
Чтобы метод расширения работал, вы должны поместить его в статический класс:
public static class ScorableExtensions {
public static string RemoveDiacritics(this string @this) {
//the one above
}
}