在.NET开发中,有时候我们会碰到需要将枚举类型的值转化为字符串显示出来。如果是普通的单个,我们直接ToString()就可以将数值转换过来,但多个的时候就需要花点点时间了。
public enum CustomerType
{
GENERAL = 1,
VIP = 2
}
我们在UI上需要将底层的客户类型显示在界面上,这时候只需要在代码中使用Enum提供的方法:GetNames()即可。
foreach(string ct in Enum.GetNames(typeof(CustomerType)))
{
//在这里添加代码处理获取的字符串信息.
}
这样就可以实现代码到UI层的应用了。
在进一步,如果我们需要将整个枚举按照顺序用逗号来分割,就如CustomerType,我们要产生GENERAL,VIP这样的字串,怎么处理?
毫无疑问,用foreach肯定是可以处理的,但我们对CustomerType稍作修改:
public enum CustomerType
{
GENERAL = 1,
VIP = 2,
VIP_PLUS = 4
}
而我们要得到GENERAL,VIP_PLUS字串,这个时候,foreach似乎不再那么好用了,我们就需要使用特性标志来进行处理。如下:
[Flag]
public enum CustomerType
{
GENERAL = 1,
VIP = 2,
VIP_PLUS = 4
}
这个时候,我们试试:
string output = (CustomerType)5;
就能发现已经达到了我们的要求,用起来相当的简单.