How to display custom string for enum value in C#
By FoxLearn 10/29/2024 11:13:21 PM 70
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
Spica Admin Dashboard Template
11/18/2024