enum
типы называются «типами перечисления» не потому, что они являются контейнерами, которые «перечисляют» значения (которые они не являются), а потому, что они определены перечислением возможных значений для переменной такого типа
(На самом деле, это немного сложнее - считается, что типы перечислений имеют «базовый» целочисленный тип, что означает, что каждое значение перечисления соответствует целочисленному значению (обычно это неявное, но может быть указано вручную) C # был спроектирован таким образом, чтобы вы могли вставить любое целое число этого типа в переменную enum, даже если это не "именованное" значение.)
Метод System.Enum.GetNames можно использовать для получения массива строк, которые являются именами значений перечисления, как следует из названия.
РЕДАКТИРОВАТЬ: должен был предложить вместо System.Enum.GetValues метод. К сожалению.