c# - 搜索字典值的字符串,然后用字典的键替换匹配的值?
问题描述
所以我有一本字典,其中的键是地址缩写的缩短版本(这是我在这本字典中的值)。我需要搜索一个字符串,看看它是否包含我的字典中的值,然后用字典中的键值替换字符串中匹配的值。例如:
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
}
}
解决方案
最简单的解决方案是反转您的键和值,
Dictionary<string, string> addresses = new Dictionary<string, string>(){"BOULEVARD","BLVD"};
然后您只需查找键即可替换:
address = address.Replace(key, addresses[key]);
推荐阅读
- c++ - 是否可以根据范围改变函数的行为?
- sql - 如何在 SQL 中分配百分比?
- android - 如何使用api通过http get请求访问Firebase数据库数据
- ansible - 未在 group_vars 中评估的 Ansible 主机变量
- php - Laravel - 归档数据,删除和插入另一个表
- null - 如何不使用 jq 跳过包含 null 的数组?
- android - 如何使用嵌套侦听器从 Firebase 实时数据库中获取特定用户列表
- javascript - mongodb 在全文搜索期间使用节点 js 返回 [] 作为响应
- javascript - 没有收到来自json的任何响应
- python-3.x - 如何从 matplotlib 中的 ax 获取子图的大小?