首页 > 解决方案 > 搜索字典值的字符串,然后用字典的键替换匹配的值?

问题描述

所以我有一本字典,其中的键是地址缩写的缩短版本(这是我在这本字典中的值)。我需要搜索一个字符串,看看它是否包含我的字典中的值,然后用字典中的键值替换字符串中匹配的值。例如:

Dictionary<string, string> addresses = new Dictionary<string, string>(){{"BLVD","BOULEVARD"}};
var address = "405 DAVIS BOULEVARD";

所以在上面的例子中,我想找到'BOULEVARD'作为匹配,然后用'BLVD'替换它。因此,新地址将是“405 DAVIS BLVD”。下面的代码是我到目前为止所拥有的,但我不确定如何使用适当的键值完成它的替换部分。任何提示将不胜感激,谢谢!

foreach(var value in addresses.Values)
{
     if(address.ToUpper().Contains(value))
     {
         //this is where i get stuck with how to replace with the appropriate key of the dictionary
     }
}




标签: c#.netstringdictionary

解决方案


最简单的解决方案是反转您的键和值, Dictionary<string, string> addresses = new Dictionary<string, string>(){"BOULEVARD","BLVD"}; 然后您只需查找键即可替换: address = address.Replace(key, addresses[key]);


推荐阅读