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

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

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

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

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

textual
Листинг программы
            Dictionary<string, Action<string>> keywordHandlers = new Dictionary<string, Action<string>>();
 
            keywordHandlers.Add("one", (s) => Console.WriteLine("one found in " + s));
            keywordHandlers.Add("two", (s) => Console.WriteLine("two found in " + s));
            keywordHandlers.Add("three", (s) => Console.WriteLine("three found in " + s));
 
            List<string> strings = new List<string>();
            strings.Add("123 one 456");
            strings.Add("123 two 456");
            strings.Add("123 three 456");
 
            foreach (var str in strings)
            {
                foreach (var kv in keywordHandlers)
                {
                    if (str.Contains(kv.Key))
                        kv.Value(str);
                }
            }

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


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

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

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