Вызов метода из цикла - C#

Узнай цену своей работы

Формулировка задачи:

Есть List стрингов. Есть массив стрингов - ключевые слова. Есть набор методов, которые для каждого ключевого слова делают обработку текста. Ключевых слов и соответствующих методов очень много. Цикл перебирает List стрингов и находит, что в выбранной строке присутствует ключевое слово. Как вызвать соответствующий слову метод? Может быть можно сделать массив методов или коллекцию методов, и вызвать метод по индексу в соответствии с индексом слова в массиве ключевых слов?

Решение задачи: «Вызов метода из цикла»

textual
Листинг программы
  1.             Dictionary<string, Action<string>> keywordHandlers = new Dictionary<string, Action<string>>();
  2.  
  3.             keywordHandlers.Add("one", (s) => Console.WriteLine("one found in " + s));
  4.             keywordHandlers.Add("two", (s) => Console.WriteLine("two found in " + s));
  5.             keywordHandlers.Add("three", (s) => Console.WriteLine("three found in " + s));
  6.  
  7.             List<string> strings = new List<string>();
  8.             strings.Add("123 one 456");
  9.             strings.Add("123 two 456");
  10.             strings.Add("123 three 456");
  11.  
  12.             foreach (var str in strings)
  13.             {
  14.                 foreach (var kv in keywordHandlers)
  15.                 {
  16.                     if (str.Contains(kv.Key))
  17.                         kv.Value(str);
  18.                 }
  19.             }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.167 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут