You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中如何从枚举值获取对应的字符串名称?

不用CASE/IF-ELSE获取枚举名称的简便方法

当然有啦!C#提供了原生的枚举操作方法,能轻松实现根据数值获取对应枚举名称的需求,完全不用写一堆冗余的分支判断。

方法1:直接使用Enum.GetName

这是最直接的方式,只需要传入枚举类型和目标数值,就能返回对应的名称字符串:

int inputValue = 1;
string stateName = Enum.GetName(typeof(State), inputValue);
// 此时stateName的值为 "KARNATAKA"

如果传入的数值不在枚举定义的有效值范围内,这个方法会返回null,你可以根据需要添加空值判断逻辑。

方法2:转换为枚举实例后调用ToString()

先把数值强制转换为对应的枚举类型,再调用ToString()方法获取名称:

int inputValue = 5;
State state = (State)inputValue;
string stateName = state.ToString();
// 此时stateName的值为 "GOA"

不过要注意:如果传入的数值不在枚举的合法范围内,强制转换不会报错,但ToString()会返回该数值的字符串形式(比如输入6会返回"6")。如果需要严格校验数值的合法性,可以先使用Enum.IsDefined判断:

int inputValue = 3;
if (Enum.IsDefined(typeof(State), inputValue))
{
    State state = (State)inputValue;
    string stateName = state.ToString();
    // 处理合法的枚举名称
}
else
{
    // 处理非法数值的情况,比如抛出提示或返回默认值
}

这两种方法都简洁高效,完全替代了繁琐的CASE/IF-ELSE分支,根据你的业务需求选择合适的方式即可。

内容的提问来源于stack exchange,提问作者Vikas Kunte

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:06:24