У меня есть список строк, содержащих запрещенные слова. Какой эффективный способ проверить, содержит ли строка какие-либо запрещенные слова, и удалить их из строки? На данный момент у меня так:
cleaned = String.Join(" ", str.Split().Where(b => !bannedWords.Contains(b,
StringComparer.OrdinalIgnoreCase)).ToArray());
Это отлично работает для отдельных запрещенных слов, но не для фраз (например, more than one word). Любой экземпляр more than one word также должен быть удален. Альтернативой, которую я хотел попробовать, является использование метода List из списка, но он возвращает только логическое значение, а не индекс соответствующего слова. Если бы я мог получить индекс подходящего слова, я мог бы просто использовать String.Replace(bannedWords[i],"");