Jon*_*Jon 5 .net c# string .net-3.5 c#-3.0
我有以下方法,我需要检查某些字符串,无论如何,然后删除它们.只是想知道是否有更好的表现方式?
private void MyMethod(string Filter)
{
//need to remove <Filter> and </Filter> case in-sensitive
var result = Filter.ToLower().Replace("<filter>","");
result = Filter.ToLower().Replace("</filter>,"");
...........................
}
Run Code Online (Sandbox Code Playgroud)
这种方法的一个问题是,它将整个字符串转换为小写,而不仅仅是进行不区分大小写的替换。
您可以使用正则表达式进行不区分大小写的匹配:
string result = Regex.Replace(
Filter,
"</?filter>",
String.Empty,
RegexOptions.IgnoreCase
);
Run Code Online (Sandbox Code Playgroud)
另一种选择是使用该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);
}
Run Code Online (Sandbox Code Playgroud)