Converting enum values into an string array
1 2 3 4 5 6
| public enum VehicleData
{
Dodge = 15001,
BMW = 15002,
Toyota = 15003
} |
我想在字符串数组中得到大于15001、15002、15003的值,如下所示:
1
| string[] arr = {"15001","15002","15003" }; |
我尝试使用下面的命令,但这给了我名称数组而不是值。
1
| string[] aaa = (string[]) Enum.GetNames(typeof(VehicleData )); |
我也试过string[] aaa = (string[]) Enum.GetValues(typeof(VehicleData));,但没用。
有什么建议吗?
使用GET值
1 2 3 4
| Enum.GetValues(typeof(VehicleData ))
.Cast<int>()
.Select(x => x .ToString())
.ToArray(); |
现场演示
那么Enum.GetNames呢?
1
| string[] cars = System.Enum.GetNames( typeof( VehicleData ) ); |
试试看;)
- Enum.GetNames返回字符串数组而不是单个字符串
- System.Enum.GetNames将按要求给出名称而不是值作为op。
Enum.GetValues将为您提供一个数组,其中包含Enum的所有定义值。要将它们转换为数字字符串,需要先将它们强制转换为int,然后再强制转换为ToString()。
类似:
1 2 3 4
| var vals = Enum.GetValues(typeof(VehicleData ))
.Cast<int>()
.Select(x => x .ToString())
.ToArray(); |
演示
我在这里找到了这个-如何在C中将枚举转换为列表?,修改为生成数组。
1 2 3 4
| Enum.GetValues(typeof(VehicleData ))
.Cast<int>()
.Select(v => v .ToString())
.ToArray(); |