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

C#如何正确获取Enum枚举值转为字符串数组用于比较验证

枚举转字符串数组实现方法

场景说明

需求是校验自定义枚举的成员值,将枚举所有成员名称转为字符串数组,和预期值做相等比较,现有枚举定义如下:

namespace Test.Enums
{ 
    public enum Type
    { 
        Audi,
        Porsche,
        Peugeot
    }
}

原测试代码中直接实例化枚举类型的写法无法得到目标字符串数组,需要调整取值逻辑。

正确实现

直接使用.NET内置的Enum.GetNames方法,传入目标枚举的类型,即可返回该枚举所有成员名称的字符串数组,返回顺序和枚举定义的成员顺序完全一致,修正后的测试代码如下:

[Fact]
public void Test()
{
   //arrange
    string[] expected = {"Audi", "Porsche", "Peugeot"};
    string[] actual = Enum.GetNames(typeof(Test.Enums.Type));      

   //assert
    Assert.Equal(expected, actual);
}

补充说明

  • 如果需要获取枚举对应的数值而非名称,可以使用Enum.GetValues方法,该方法返回所有枚举成员的值数组,按需转为对应整型类型即可
  • 若使用的是.NET 5及以上版本,还可以用泛型版本的Enum.GetNames<Test.Enums.Type>()写法,不需要显式传入typeof参数,代码更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 21:21:36