【发布时间】:2016-05-13 05:32:49
【问题描述】:
我正在尝试用 Dictionary Value 替换字符串中的文本,如果它与 Dictionary Key 匹配。 从 Table1 中选择 *,其中 column1 ={Value1} 和 Column2 = {value2}。
mydict.Add({value1},OriginalValue1);
mydict.Add({value2},OriginalValue2);
我可以遍历字典键并替换字符串中的文本,但如果 Dictionary 对象中有超过 100 个项目,这会影响性能。
foreach(string key in mydict.keys)
{
if(Query.Contains(key)
{
//Replace the string
}
有没有办法在对性能影响最小的情况下实现这一点?
【问题讨论】:
-
是什么让您认为它会对性能产生足够大的影响?
Dictionary类速度很快。 -
如果您的字典包含“将 a 更改为 b”和“将 b 更改为 a”,当字典适用于“ab”时,您期望什么?输出“ba”还是“aa”?
-
实际上使用字典应该没有太大区别,因为 OP 无论如何都会遍历所有键。搜索特定键时,字典速度很快。
-
为性能而设计被认为是不好的形式。构建,然后根据需要考虑性能。
标签: c# str-replace