Существует ли языковая конструкция в C #, которая позволяет абстрагировать циклическую (или другую) "внешнюю" обработку?
У меня есть довольно прямая вложенная структура (например, списки списков целых) и код"вращаться" через каждый из нижних уровнейКод не сложный (и не особенно длинный), но у меня есть несколько функций, которые должны «взаимодействовать» с самым низким уровнем независимо, и я просто копирую скелет цикла, чтобы сделать это.Мне кажется, что это пустая трата.
foreach (list in outerlists)
... a few random lines of structure traversing
foreach (int in list)
do something simple to int
Это явно уменьшенный пример, но мой реальный мир похож - я заканчиваю тем, что копирую внешнюю обработку многократно, чтобы изменить относительно небольшое количество внутренних линий работы.
Мое предварительное решение состоит в том, чтобы создать метод «обработки», который содержит циклы и принимает параметр перечисления (или что-то еще), чтобы сообщить ему, какую внутреннюю функцию вызывать.Затем поместите оператор switch на уровень «что-то сделать», который вызывает правильную подфункцию.
Я на правильном пути или есть более легкий путь?Я мог бы избавиться от оператора switch с помощью концепции указателей на функции (просто передать указатель на функцию в цикл обработки и вызвать его на уровне do что-то), но не знаю, возможно ли это в C #?