Converting enum values into an string array
| 12
 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值
| 12
 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()。
类似:
| 12
 3
 4
 
 | var vals = Enum.GetValues(typeof( VehicleData))
    .Cast<int>()
    .Select( x =>  x.ToString())
    .ToArray(); | 
演示
我在这里找到了这个-如何在C中将枚举转换为列表?,修改为生成数组。
| 12
 3
 4
 
 | Enum.GetValues(typeof(VehicleData))
.Cast<int>()
.Select( v =>  v.ToString())
.ToArray(); |