Шаг1 - магии нет. Переменная не может что-то делать. Так что потребуется класс с методами установки и чтения значения свойства. Вот в методе установки - можно выполнить и ещё что-то (вызвать функцию).
Шаг2 - более изящный вариант передавать классу того самого делегата которого надо дёрнуть, тем самым не помещая логику функции внутрь класcа, отвечающего за enum.
Суть проста: У вас есть два набора из N чисел. Две строки чисел одинаковой длины, если хотите. Надо в каждом столбце (из двух элементов) наверх поставить максимальный, а вниз - минимальный.
Для решения этой задачи надо уметь в массивы, циклы, условные операторы и уметь поменять местами два значения. Код тривиален: пройдитесь циклом от 0 до N-1 (ведь нумерация с 0) и, если элементы в заданном столбце идут не в том порядке, в каком должны, поменяйте их местами.