Одна из проблем этого подхода заключается в том, что он преобразует всю строку в нижний регистр, а не просто заменяет регистр букв.
Вы можете использовать регулярное выражение для сопоставления без учета регистра:
string result = Regex.Replace(
Filter,
"</?filter>",
String.Empty,
RegexOptions.IgnoreCase
);
Другой альтернативой является использование метода IndexOf
для поиска строк, поскольку он может выполнять поиск без учета регистра:
string result = Filter;
int index;
while ((index = IndexOf("<filter>", StringComparison.OrdinalIgnoreCase)) != -1) {
result = result.Remove(index, 8);
}
while ((index = IndexOf("</filter>", StringComparison.OrdinalIgnoreCase)) != -1) {
result = result.Remove(index, 9);
}