How to display custom string for enum value in C#
By FoxLearn 10/29/2024 11:13:21 PM 116
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.
- How to handle nulls with SqlDataReader in C#
- Resolve nullable warnings
- Cannot convert null to type parameter ‘T’
- How to create a custom exception in C#
- How to check if a nullable bool is true in C#
- How to make a file read-only in C#
- How to Get all files in a folder in C#
- How to validate an IP address in C#
Categories
Popular Posts
How to disable Windows Defender SmartScreen
12/24/2024