Вызов метода из цикла - 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);
}
}