【问题标题】:C# Enum Reverse IndexingC# 枚举反向索引
【发布时间】:2011-10-17 21:14:49
【问题描述】:

有没有办法使用整数索引从枚举中返回适当的值?例如,如果有枚举 Color {Red, Green, Blue) 是否存在一个函数,对于值 0 将返回红色,1 将返回绿色,2 将返回蓝色?

【问题讨论】:

标签: c# enums


【解决方案1】:

Enum.GetName 方法:http://msdn.microsoft.com/en-us/library/system.enum.getname.aspx

用你的例子,

Console.WriteLine(Enum.GetName(typeof(Color), 1));

打印“绿色”

【讨论】:

  • 请注意,如果你混淆你的代码,你会得到乱码而不是人类可读的名称。在这种情况下,编写你自己的翻译方法。
【解决方案2】:

您可以将整数值转换为枚举。

Color c = (Color)0; //Color.Red

【讨论】:

    【解决方案3】:
    string color = ((Color)1).ToString(); //color is "Green"
    

    使用 Enum.ToString() 方法。

    http://msdn.microsoft.com/en-us/library/16c1xs4z.aspx

    【讨论】:

      【解决方案4】:

      这很笨拙但是......

      String Day = Enum.GetName(typeof(DayOfWeek), 3);
      

      【讨论】:

        猜你喜欢
        • 2016-12-08
        • 1970-01-01
        • 1970-01-01
        • 2010-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多