如何在C#中获取枚举的小写表示?

时间:2010-12-09 13:16:46

标签: c# .net enums

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

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

如何在C#中获取枚举的小写表示?我希望enums能够保留他们的天然标题表示。

4 个答案:

答案 0 :(得分:12)

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

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

答案 1 :(得分:2)

  

有没有办法以小写例句获取字符串例外:value.ToString()。ToLower()?

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

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

如果您直接获取字符串值,您仍然可以执行此操作,但编写反射代码的开销可能超出您想要处理的范围。

HTH, 布赖恩