2016-10-07 11 views
0

У меня есть массив, содержащий список черных слов в виде строк. Эта функция возвращает значение true, если в тексте появляется хотя бы одно слово из черного списка.Получить соответствие Словам черного списка, которые появляются в предоставленной строке

private static bool IsSuspectedAsSpam(string text, IEnumerable<string> wordBlacklist) 
    { 
     string temp = text.ToLower(); 
     return wordBlacklist.Any(s => temp.Contains(s));   
    } 

Как я могу получить слова из черного списка, где найти в тексте, как я хочу, чтобы напечатать их на веб-странице.

+3

Рассмотренный Любой -> Где? – Andrei

+0

, чтобы получить слова у вас есть 2 варианта, 1 изменить возврат, чтобы иметь список слов, но затем вы теряете логическое значение и должны проверить, есть ли count> 0. Второй добавить ссылочный параметр, чтобы найти слова. – Franck

+0

@ Andrei внутри цикла и распечатать его? –

ответ

1

Просто используйте Where вместо Any:

private static IEnumerable<string> GetSpamWords(string text, IEnumerable<string> wordBlacklist) 
{ 
    return wordBlacklist.Where(s => text.ToLower().Contains(s)).ToList(); 
} 

Это возвращает список строк, которые были подобраны в тексте.

1

Использование Where вместо любого

private static List<string> GetSpamWords(string text, IEnumerable<string> wordBlacklist) 
{ 
      string temp = text.ToLower(); 
      return wordBlacklist.Where(s => temp.Contains(s)).ToList();   
}