используйте LINQ - поместите все слова, которые вы хотите проверить, в List<string>
, затем получите текст от чат-бота и list.Any(x=>chatBotString.IndexOf(x) > -1)
- при условии, что вы ToLower()
и Trim()
все, это должно работать.
Допустим, ваша строка в чате чата s
равна "the red fox jumped over the brown dog under the fence, I don't actually know what the sentence is"
, а ваш список терминов L
равен
"red fox"
"brown dog"
"under the fence"
"actually know"
вы делаете
L.Any(x=>s.Trim().ToLower().IndexOf(x.Trim().ToLower())>-1)
Если вы получите true
- тогда вы нашли хотя бы 1 строку.
Пример программы:
void Main()
{
var l = new List<string> {
"red fox",
"brown dog",
"under the fence",
"actually know"
};
var s = "the red fox jumped over the brown dog under the fence, I don't actually know what the sentence is";
s = s.Trim().ToLower();
l.Any(x => s.IndexOf(x.Trim().ToLower()) > -1); // true
s = "this is a sentence with no matches";
s = s.Trim().ToLower();
l.Any(x => s.IndexOf(x.Trim().ToLower()) > -1); // false
}