How to enumerate Enum C#
Problem: We have enum declared in our class and we want to enumerate enum. How could we enumerate enum let’s together try to understand. Sometimes we get error message like “Enum is a type but used as a variable”. So how can we overcome from this issue!!!

Solution:
Let’s say we have a below enum in our code and we want to enumerate enum of DayOfWeek
public enum DayOfWeek { Sunday = 0, Monday = 1, Tuesday = 2, Wednesday = 3, Thursday = 4, Friday = 5, Saturday = 6 }
There are two ways to enumerate enum:
- var values = Enum.GetValues(typeof(myenum))
- var values = Enum.GetNames(typeof(myenum))
The first will give you values in form on a array of object, and the second will give you values in form of array of String.
Find below code snippet for solution of “How to enumerate Enum in C#?”
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Enumerate_Enum_csharp { class Program { public enum DayOfWeek { Sunday = 0, Monday = 1, Tuesday = 2, Wednesday = 3, Thursday = 4, Friday = 5, Saturday = 6 } static void Main(string[] args) { //Code snippet-1 foreach (DayOfWeek ObjDayOfWeek in Enum.GetValues(typeof(DayOfWeek))) { DoSomething(ObjDayOfWeek); } //Code snippet-2 //I think caching the array would speed it up considerably. //It looks like you're getting a new array (through reflection) every time. //Optimization of first code snippet Array enums = Enum.GetValues(typeof(DayOfWeek)); foreach (DayOfWeek ObjDayOfWeek in enums) { DoSomething(ObjDayOfWeek); } //Code snippet-3 string[] enumsString = Enum.GetNames(typeof(DayOfWeek)); foreach (string strDayOfWeek in enumsString) { Console.WriteLine(strDayOfWeek); } } private static void DoSomething(DayOfWeek ObjDayOfWeek) { Console.WriteLine(ObjDayOfWeek.ToString() + " ID=" + (int)ObjDayOfWeek); } } }
We could also use alternate way of implementation as below:
typeof(DayOfWeek).GetEnumValues; typeof(DayOfWeek).GetEnumName(object Value);
Output:
Folks, this is how we could enumerate Enum in C#. As I have explained two different ways to enumerate Enum, if anyone is having another way to enumerate Enum in C#, kindly share with us.