Вы можете уменьшить часть дублирующегося кода в операторах if
, создав Dictionary
, который отображает строки в их соответствующие функции. (В этом фрагменте предполагается, что myList
содержит string
значений, но его можно легко адаптировать к списку любого типа.)
Dictionary<string, Action<string>> actions = new Dictionary<string, Action<string>>
{
["string1"] = myFunction1,
["string2"] = myFunction2,
["string3"] = myFunction3
};
foreach (var item in myList)
{
foreach (var action in actions)
{
if (item.Contains(action.Key))
{
action.Value(item);
break;
}
}
}
Для списка, состоящего только из трех элементов, это не может быть большим улучшением, но если у вас есть большой список строк / функций для поиска, это может сделать ваш код намного короче. Это также означает, что добавление новой пары строка / функция является изменением в одну строку. Самым большим недостатком является то, что цикл foreach
немного сложнее для чтения.