C# Как можно пройтись по списку перечислений?

В моей задаче нужно пройтись по списку констант в перечислениях и произвести определённые действия с их использованием. Думаю аналогом моей задачи может выступить вывод строки "Color is ..." (.вместо ... подставить название цвета; цвет строки должен соответствовать названию) , но мой код для реализации такой задачи не работает:

foreach (ConsoleColor color in ConsoleColor)
{
     Console.ForegroundColor = color;
     Console.WriteLine("Color is {0}", color);
}

Console.ForegroundColor = ConsoleColor.Gray;

Для прохождения по всем элементам перечисления Вам нужно получить либо список названий констант, либо список их значений. Это делается с помощью методов GetValues и GetNames класса Enum, которые в качестве параметра должны принять экземпляр класса Type принадлежащий вашему перечислению. Пример реализации описанной вами задачи:

foreach (int color in Enum.GetValues(typeof(ConsoleColor)))
{
    Console.ForegroundColor = (ConsoleColor)color;
    Console.WriteLine("Color is {0}", (ConsoleColor)color);
}
Console.ForegroundColor = ConsoleColor.Gray;