我创建了如下的枚举
public enum colors
{
Red = 1,
green = 2,
blue = 3
}
无论何处将颜色保存到页面中,我都必须将此枚举用于页面。保存后,我必须显示我保存的颜色。
但对我来说结果显示如下:例如:红色表示1。
我尝试了以下内容,
o.Colors != null ? ((Models.Enums.Colors)o.ColorMode) : 0
上面的代码我应该得到红色,绿色,蓝色。但我得到的结果就像1,2,3 ......
请帮助我..
答案 0 :(得分:6)
试试此代码
string className = Enum.GetName(typeof(Models.Enums.Colors),
o.Colors != null ?((Models.Enums.Colors)o.ColorMode) : 0);
或使用通用函数
private static T ToEnum(string value)
{
return (T)Enum.Parse(typeof(T), value, true);
}
private string EnumToString(T enumValue)
{
Type typeParameterType = typeof(T);
return Enum.GetName(typeParameterType, enumValue);
}
对于你的情境Dictionary是最好的选择
原因:如果要添加带空格的类或“ - ”,则枚举范围较小
// Use a dictionary with an int key.
Dictionary<int, string> StyleDict = new Dictionary<int, string>();
StyleDict.Add(1, "Red");
StyleDict.Add(2, "green ");
StyleDict.Add(3, "blue");
然后你可以像下面这样访问这个词典
StyleDict[1] //To get Red
StyleDict[2] //To get green
尝试动态
StyleDict[o.ColorMode]
答案 1 :(得分:1)
var value = (int)model.Colors;
答案 2 :(得分:1)
这应该
((Models.Enums.Colors)o.ColorMode).ToString()
答案 3 :(得分:1)
你可以试试这个
public enum colors
{
Red = 1,
green = 2,
blue = 3
}
colors col = selectedCol; // selectedCol is the color you select for your Applications
object val = (col != null) ? Convert.ChangeType(col, typeof(string)) : 0;
val
现在确实有你需要的结果
答案 4 :(得分:-3)
就是这样的。我没有测试它。
o.Colors != null ? ((Models.Enums.Colors)o.ColorMode).ToString() : 0