string.join不工作Enum.GetValues c#

string.join不工作Enum.GetValues c#,c#,string,enums,C#,String,Enums,我有一个枚举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是强类型的,因此您必须显式设置结果类型您应该首先强制转换GetValues的结果: var abc_ar

我有一个枚举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是强类型的,因此您必须显式设置结果类型

您应该首先强制转换
GetValues的结果

var abc_arr = (abc[])Enum.GetValues(typeof(abc));
var abc_csv = string.Join(",", abc_arr );
此外,我对你的分隔符做了一些修改


您可以看一看演示。

您应该首先播放
GetValues
的结果:

var abc_arr = (abc[])Enum.GetValues(typeof(abc));
var abc_csv = string.Join(",", abc_arr );
此外,我对你的分隔符做了一些修改


您可以查看演示。

如果需要名称,应该使用:
Enum.GetNames(typeof(abc))
GetValues
返回枚举的值。如果需要,可以通过强制转换:
(int[])Enum.GetValues(typeof(abc))
如果需要名称,应该使用:
Enum.GetNames(typeof(abc))
GetValues
返回枚举的值。如果您想这样做,可以通过cast:
(int[])Enum.GetValues(typeof(abc))

您应该调用GetNames来返回名称的字符串[],并且分隔符不应该有“
”、“
”。只能是


您应该调用GetNames来返回名称的字符串[],并且分隔符不应该有“
”、“
”。它应该只有

类似,我必须在sql查询中使用它,所以我使用了“,”not,@irfandar好的,如果你需要添加它。我必须在sql查询中使用它,所以我使用了“,”not,@irfandar好的,如果你需要添加它。