Ваш поиск возвращает true
, потому что текст содержит «нации», включая строку «нация».
Если вы хотите найти слово «нация» иНе включайте подобные слова, такие как «нации», возможно, самый простой способ - использовать регулярное выражение и метасимвол \b
, который соответствует границам слов.
bool found = Regex.IsMatch(text, @"\bnation\b");
Если вы хотите обобщить это, вы можете написать:
string search = "nation";
bool found = Regex.IsMatch(text, $@"\b{Regex.Escape(search)}\b");
Как подсказывает @ Flydog57 в комментариях, вы также можете выполнять поиск без учета регистра, если вы ищете:
string search = "nation";
bool found = Regex.IsMatch(text, $@"\b{Regex.Escape(search)}\b", RegexOptions.IgnoreCase);