C# 是否先校验包含字符串再替换

C# 是否先校验包含字符串再替换

在代码中看到有人在替换字符串前,先校验字符串存在再进行替换,觉得效率不高,浪费了一次计算,进行了简单的效率测试。

包含 & 校验

图片消失

包含 & 不校验

图片消失

不包含 & 校验

图片消失

不包含 & 不校验

图片消失

测试结果

测试结果
测试条件 耗时
包含 & 校验 00:00:05.2842240
包含 & 不校验 00:00:04.8745234
不包含 & 校验 00:00:01.9206545
不包含 & 不校验 00:00:02.9747488

总结

如果预期待替换的字符串大多数不包含要替换的子字符串,“不包含 & 校验”是最优写法;如果预期待替换的字符串绝大多数包含要替换的子字符串,“包含 & 不校验”更佳一点点。实际的使用场景是拼接SQL语句的变量时,为避免SQL注入替换变量中的“'”为“"”,符合“不包含 & 校验”的最佳实践。

打赏