How to display custom string for enum value in C#
By Tan Lee Published on Oct 29, 2024 473
In C#, you can display a custom string for enum values by using the Description attribute from the System.ComponentModel namespace.
For example:
using System.ComponentModel; public enum CardType { [Description("Standard Card")] StandardCard, [Description("Premium Card")] PremiumCard }
Create an extension method that uses reflection to get the DisplayAttribute
and returns the custom display name.
using System; using System.ComponentModel.DataAnnotations; using System.Reflection; public static class EnumExtensions { public static string GetDisplayName(this Enum value) { var field = value.GetType().GetField(value.ToString()); var attribute = (DisplayAttribute)Attribute.GetCustomAttribute(field, typeof(DisplayAttribute)); return attribute?.Name ?? value.ToString(); // Fallback to enum name } }
You can now retrieve the display name directly from any enum instance.
var cardType = CardType.StandardCard; Console.WriteLine(cardType.GetDisplayName()); // Outputs: "Standard Card"
This simple syntax (enum.ToDisplayName()
) allows for easy access to custom display names defined in the DisplayAttribute
, making your code cleaner and more readable.
Categories
Popular Posts
Freedash bootstrap lite
Nov 13, 2024
Bootstrap 4 Login Page Template
Nov 11, 2024
Materio Admin Template
Nov 13, 2024
Material Lite Admin Template
Nov 14, 2024