将枚举值转换为字符串数组

本文关键字:字符串 数组 转换 枚举 | 更新日期: 2023-09-27 18:16:25

public enum VehicleData
{
    Dodge = 15001,
    BMW = 15002,
    Toyota = 15003        
}

我想在字符串数组中得到以上值15001,15002,15003,如下所示:

string[] arr = { "15001", "15002", "15003" };

我尝试了下面的命令,但它给了我一个名称数组,而不是值。

string[] aaa = (string[]) Enum.GetNames(typeof(VehicleData));

我也试过string[] aaa = (string[]) Enum.GetValues(typeof(VehicleData));,但那也不起作用。

有什么建议吗?

将枚举值转换为字符串数组

enumt . getnames呢?

string[] cars = System.Enum.GetNames( typeof( VehicleData ) );

试一试;)

使用GetValues

Enum.GetValues(typeof(VehicleData))
    .Cast<int>()
    .Select(x => x.ToString())
    .ToArray();

现场演示

Enum.GetValues将为您提供一个包含Enum的所有定义值的数组。要将它们转换为数字字符串,您需要将它们转换为int,然后转换为ToString()

类似:

var vals = Enum.GetValues(typeof(VehicleData))
    .Cast<int>()
    .Select(x => x.ToString())
    .ToArray();
演示

我在这里找到了这个-如何在c#中将枚举转换为列表?,修改为array.

Enum.GetValues(typeof(VehicleData))
.Cast<int>()
.Select(v => v.ToString())
.ToArray();