【发布时间】:2024-01-23 06:10:01
【问题描述】:
如果没有要转义的字符,会
if (s.Contains("\""))
s = s.Replace("\"", "\"\"");
真的比跑得更快
s = s.Replace("\"", "\"\"");
Contains 方法必须像 Replace 方法一样搜索字符串,如果 Replace 方法没有找到任何要转义的内容,那么我认为它不应该比 Contains 方法花费的时间更长查看字符串。但是如果有一个字符要转义,那么你就必须在字符串中搜索两次。
【问题讨论】:
-
您可以随时测试它并告诉我们。 :)
-
如果这是您唯一的性能问题,那么您就是一个快乐的人 ;=)
-
为什么要这样做?您是否正在创建某种代码生成器?变量中的字符串实际上不需要转义。只有字符串文字需要转义。我错过了什么吗?
-
@ChrisDunaway 首先想到的两个例子是我们应该将字符串视为正则表达式模式的一部分,并将应视为文字的字符串写入XML 属性。
-
@ChrisDunaway 正在将数据导出到 Csv。我刚刚看到有人用第一种方式写它,感觉想从工作中休息 5 分钟来对其进行微观分析:)
标签: c# performance string-comparison