正确的做法是什么?

检查是否存在,然后删除?

var input = "foo #main baa";
if(input.Contains("#main")) {
   input = input.Replace("#main", "");
}


要不就:

input = input.Replace("#main", "");


好吧,这似乎是一个简单的问题,但我真的很想知道。
提前致谢。

最佳答案

Contains检查实际上只会使您的代码变慢。
去掉它。

Contains调用需要遍历字符串,直到找到#main
然后,Replace调用需要执行相同的精确循环(无法通过Contains调用记住它)。
这是Shlemiel the Painter's algorithm

Replace可以处理出现零个或多个搜索字符串的字符串,因此您不需要进行检查。

关于c# - 关于在C#中删除字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7863663/

10-17 01:47