How to display custom string for enum value in C#
By Tan Lee Published on Oct 29, 2024 410
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
11 Things You Didn't Know About Cloudflare
Dec 19, 2024
Gentella Admin Template
Nov 14, 2024
Login SignUp form using HTML CSS JS
Nov 11, 2024
Freedash bootstrap lite
Nov 13, 2024