string.join不工作Enum.GetValues c#

时间:2016-11-04 10:17:03

标签: c# string enums

我有一个Enum abc(N = 0,Y = 1,M = 2),我想将其转换为CSV所以我使用了string.Join如下

var abc_arr = Enum.GetValues(typeof(abc));
var abc_csv = string.Join("','", abc_arr );

但它不返回 N,Y,M ,而是返回“System.abc []” 为什么呢?

问题是Enum.GetValues是强类型的,所以你必须明确设置结果类型

3 个答案:

答案 0 :(得分:2)

如果您需要名称,则应使用:Enum.GetNames(typeof(abc))GetValues返回枚举的值。如果你想要,你可以通过演员:(int[])Enum.GetValues(typeof(abc))

来完成

答案 1 :(得分:1)

您应首先投射GetValues的结果:

var abc_arr = (abc[])Enum.GetValues(typeof(abc));
var abc_csv = string.Join(",", abc_arr );

此外,我改变了你的分隔符。

您可以查看here进行演示。

答案 2 :(得分:1)

var abc_arr = Enum.GetNames(typeof(abc));
var csv = string.Join(",", abc_arr);

你应该调用GetNames来返回名称的字符串[],你的分隔符也不应该有','。它应该只是,