我有一个我想忽略的单词列表:
public List<String> ignoreList = new List<String>()
{
"North",
"South",
"East",
"West"
};
对于给定的字符串,比如 "14th Avenue North"
我希望能够删除“North”部分,所以基本上是一个返回 "14th Avenue "
调用时。
我觉得我应该可以通过混合使用 LINQ、正则表达式和替换来完成某些事情,但我就是想不通。
更大的图景是,我正在尝试编写一个地址匹配算法。在使用 Levenshtein 算法评估相似度之前,我想过滤掉“街道”、“北方”、“大道”等词。
最佳答案
这个怎么样:
string.Join(" ", text.Split().Where(w => !ignoreList.Contains(w)));
或对于 .Net 3:
string.Join(" ", text.Split().Where(w => !ignoreList.Contains(w)).ToArray());
请注意,此方法将字符串拆分为单个单词,因此它只会删除整个单词。这样它就可以正常处理 Northampton Way #123
等 string.Replace
无法处理的地址。
关于c# - 使用 List<string> 替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3712317/