2016-11-04 22 views
-1

我有一個枚舉ABC(N = 0,Y = 1,M = 2),我想將它轉化成CSV所以我用的string.join如下的string.join不工作Enum.GetValues C#

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

但它不返回N,Y,M而是返回「System.abc []」 爲什麼?

那麼問題是Enum.GetValues是強類型的,所以你必須明確地設置結果類型

+1

類似於http://stackoverflow.com/questions/3213432/why-does-enum-getvalues-return-names-when-using-var和http://stackoverflow.com/questions/ 1398664/enum-getvalues-return-type – doctorlove

回答

1

你應該先投的GetValues結果:

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

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

你可以看看here的演示。

1

如果你想要的名字,你應該使用:Enum.GetNames(typeof(abc))GetValues返回枚舉的值。如果你想,你可以通過鑄造做到這一點:(int[])Enum.GetValues(typeof(abc))

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

你應該叫GetNames返回字符串[]的名字,你也應該分離器沒有','。它應該只有,

+0

我必須在sql查詢中使用它,所以我使用','不是, – irfandar

+0

@irfandar好吧如果你需要的話可以添加它。 – mybirthname