【发布时间】:2011-06-23 09:42:22
【问题描述】:
我有以下方法,我需要检查一些在任何情况下都可能存在的特定字符串,然后将它们删除。只是想知道是否有更好的执行方式?
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>,"");
...........................
}
【问题讨论】:
-
Regex.Replace(Filter, "</?filter>", string.empty, RegexOptions.IgnoreCase);如果您对各种方法的性能感兴趣,SO 上有很多关于它的讨论。 -
它不会改变标签之间的大小写。或者这对你来说无关紧要。
-
ToUpper是比ToLower更好的选择。字符串比较和替换已针对前者进行了优化。从开发人员的角度来看,没有什么区别,所以这是一个简单的修复。 -
@Cody Gray - 你有任何链接可以验证这一点吗?我想知道为什么这会有所不同。
-
@Øyvind:其实是
ToUpperInvariant。这是有道理的;无论如何,这就是您应该使用的。这里有一些链接:stackoverflow.com/questions/9033/hidden-features-of-c#12137 和 msdn.microsoft.com/en-us/library/ms973919.aspx,特别是“字符串使用建议”
标签: c# .net string .net-3.5 c#-3.0