我有一个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是强类型的,所以你必须明确设置结果类型
答案 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来返回名称的字符串[],你的分隔符也不应该有','
。它应该只是,