Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将枚举值转换为字符串数组_C#_Linq_Enums - Fatal编程技术网

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

C# 将枚举值转换为字符串数组,c#,linq,enums,C#,Linq,Enums,我想在字符串数组中获得15001、15002、15003以上的值,如下所示: public enum VehicleData { Dodge = 15001, BMW = 15002, Toyota = 15003 } 我尝试了下面的命令,但这给了我一个名称数组,而不是值数组 string[] arr = { "15001", "15002", "15003" }; 我还尝试了string[]aaa=(string[])Enum.GetValues(t

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

public enum VehicleData
{
    Dodge = 15001,
    BMW = 15002,
    Toyota = 15003        
}
我尝试了下面的命令,但这给了我一个名称数组,而不是值数组

string[] arr = { "15001", "15002", "15003" };
我还尝试了
string[]aaa=(string[])Enum.GetValues(typeof(VehicleData))但那也不起作用

有什么建议吗?

使用

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

我在这里找到了这个-,修改为数组

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

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

比如:

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

Enum.GetNames呢

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

试试看;)

您的演示似乎与所显示的示例不一致。
Enum.GetNames
返回字符串数组而不是单个字符串
System.Enum.GetNames
将按要求提供名称而不是值。如果您更喜欢更通用的实现。
var vals = Enum.GetValues(typeof(VehicleData))
    .Cast<int>()
    .Select(x => x.ToString())
    .ToArray();
string[] cars = System.Enum.GetNames( typeof( VehicleData ) );