// Разделяем строку на массив слов по запятой, удаляем лишние пробелы и приводим к нижнему регистру HashSet<string> where_replys_hash = new HashSet<string>( where_replys.Split(',') .Select(keyword => keyword.Trim().ToLower()), // Приводим каждое ключевое слово к нижнему регистру StringComparer.OrdinalIgnoreCase // Игнорируем регистр при проверке наличия );
HashSet<string> keywords_hash = new HashSet<string>( keywords.Split(',') .Select(keyword => keyword.Trim().ToLower()), // Приводим каждое ключевое слово к нижнему регистру StringComparer.OrdinalIgnoreCase // Игнорируем регистр при проверке наличия );
// Приводим текст к нижнему регистру для сравнения string? title = extras.GetString(Notification.ExtraTitle).ToLower(); string? text = extras.GetString(Notification.ExtraText).ToLower();
// Проверяем каждое слово foreach (var i in where_replys_hash) { if (title.Contains(i)) // Здесь не нужно приводить keyword к нижнему регистру, так как он уже в нижнем регистре { foreach (var j in keywords_hash) { if (text.Contains(j)) { Log.Info("NotificationListener", $"Ответ на {packageName}: {title} - {text}"); AutoReply(reply_text, sbn); } } } } } } }