C# 将枚举值转换为字符串数组
我想在字符串数组中获得15001、15002、15003以上的值,如下所示: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
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 ) );