замена строки с использованием List <string> - PullRequest
13 голосов
/ 14 сентября 2010

У меня есть список слов, которые я хочу игнорировать, например:

public List<String> ignoreList = new List<String>()
        {
            "North",
            "South",
            "East",
            "West"
        };

Для данной строки, скажем, "14th Avenue North" Я хочу иметь возможность удалить "северную" часть, поэтому в основном функция, которая при вызове возвращает "14th Avenue ".

Я чувствую, что могу кое-что сделать со смесью LINQ, regex и replace, но я просто не могу этого понять.

В целом, я пытаюсь написать алгоритм сопоставления адресов. Я хочу отфильтровать такие слова, как «Улица», «Север», «Бульвар» и т. Д., Прежде чем использовать алгоритм Левенштейна для оценки сходства.

Ответы [ 11 ]

0 голосов
/ 14 сентября 2010
public static string Trim(string text)
{
   var rv = text;
   foreach (var ignore in ignoreList)
      rv = rv.Replace(ignore, "");
   return rv;
}

Обновлено для Гейба


public static string Trim(string text)
{
   var rv = "";
   var words = text.Split(" ");
   foreach (var word in words)
   {
      var present = false;
      foreach (var ignore in ignoreList)
         if (word == ignore)
            present = true;
      if (!present)
         rv += word;
   }
   return rv;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...