Вызов метода из цикла - 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); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д