【问题标题】:How do I get the lowercase representation of an enum in C#?如何在 C# 中获取枚举的小写表示?
【发布时间】:2010-12-09 13:16:45
【问题描述】:

我在 ASP.NET MVC 应用程序中有以下 enum,我想使用该枚举作为参数。为此,我想返回 enum 的小写字符串表示形式。

 public enum SortOrder
 {
      Newest = 0,
      Rating = 1, 
      Relevance = 2 
 }

如何在 C# 中获取枚举的小写表示?我希望枚举也保留其自然的标题表示。

【问题讨论】:

    标签: c# .net enums


    【解决方案1】:

    不,除了object 上的扩展方法之外,没有。

    public static string ToLower (this object obj)
    {
      return obj.ToString().ToLower();
    }
    

    【讨论】:

      【解决方案2】:

      有什么方法可以获取小写字符串的异常g: value.ToString().ToLower() ?

      否(除非您更改枚举:newestratingrelevance...)

      一种常见的技术是为每个枚举成员添加一个属性,指定要与之关联的字符串,例如: http://weblogs.asp.net/grantbarrington/archive/2009/01/19/enumhelper-getting-a-friendly-description-from-an-enum.aspx

      【讨论】:

        【解决方案3】:

        您也可以使用Enum.GetNames(...) 来获取包含枚举值的字符串数组。然后,将这些转换为小写。要将字符串转换为相应的枚举值,您可以使用Enum.Parse 方法在第三个参数中传递true,这使得比较不区分大小写。

        【讨论】:

          【解决方案4】:

          如果显示枚举文本的内容知道(并利用)System.ComponentModel 命名空间,那么您可以使用 System.ComponentModel.DescriptionAttribute 装饰枚举并自己键入小写版本。

          如果您直接获取字符串值,您仍然可以这样做,尽管您编写反射代码的开销可能比您想要处理的要多。

          HTH, 布赖恩

          【讨论】:

            猜你喜欢
            • 2014-11-10
            • 2011-07-07
            • 1970-01-01
            • 2021-10-31
            • 1970-01-01
            • 1970-01-01
            • 2022-08-24
            • 1970-01-01
            • 2011-09-06
            相关资源
            最近更新 更多