[Fork] Stackoverflow > Docs > Enum

CSharp · Console

/Program.cs

using System;
using System.Linq;
using System.ComponentModel;

 public enum EnumFruits
 {
        [Description("Apple")]
        A = 1,
        [Description("Orange")]
        B = 2,
        [Description("Banana")]
        C = 3,
        [Description("Others")]
        O = 0,
}

				 
					
public class Program
{
	public static void Main()
	{
		
		var selectListItems  = Enum.GetValues(typeof(EnumFruits))
								.Cast<EnumFruits>()
								.Select(v => new { Text = GetEnumDescription((EnumFruits)v), Value = (int)v } )
								.ToList();
		
		foreach(var item in selectListItems){
			Console.WriteLine(item.Text + " - " + item.Value);
		}
	}
	
	public static string GetEnumDescription(Enum value)
	{
		var fi = value.GetType().GetField(value.ToString());

		var attributes = fi.GetCustomAttributes(typeof(DescriptionAttribute), false) as DescriptionAttribute[];

		if (attributes != null && attributes.Any())
		{
			return attributes.First().Description;
		}

		return value.ToString();
	}	
}
;