【发布时间】:2010-12-09 13:16:45
【问题描述】:
我在 ASP.NET MVC 应用程序中有以下 enum,我想使用该枚举作为参数。为此,我想返回 enum 的小写字符串表示形式。
public enum SortOrder
{
Newest = 0,
Rating = 1,
Relevance = 2
}
如何在 C# 中获取枚举的小写表示?我希望枚举也保留其自然的标题表示。
【问题讨论】:
我在 ASP.NET MVC 应用程序中有以下 enum,我想使用该枚举作为参数。为此,我想返回 enum 的小写字符串表示形式。
public enum SortOrder
{
Newest = 0,
Rating = 1,
Relevance = 2
}
如何在 C# 中获取枚举的小写表示?我希望枚举也保留其自然的标题表示。
【问题讨论】:
不,除了object 上的扩展方法之外,没有。
public static string ToLower (this object obj)
{
return obj.ToString().ToLower();
}
【讨论】:
有什么方法可以获取小写字符串的异常g: value.ToString().ToLower() ?
否(除非您更改枚举:newest、rating、relevance...)
一种常见的技术是为每个枚举成员添加一个属性,指定要与之关联的字符串,例如: http://weblogs.asp.net/grantbarrington/archive/2009/01/19/enumhelper-getting-a-friendly-description-from-an-enum.aspx
【讨论】:
您也可以使用Enum.GetNames(...) 来获取包含枚举值的字符串数组。然后,将这些转换为小写。要将字符串转换为相应的枚举值,您可以使用Enum.Parse 方法在第三个参数中传递true,这使得比较不区分大小写。
【讨论】:
如果显示枚举文本的内容知道(并利用)System.ComponentModel 命名空间,那么您可以使用 System.ComponentModel.DescriptionAttribute 装饰枚举并自己键入小写版本。
如果您直接获取字符串值,您仍然可以这样做,尽管您编写反射代码的开销可能比您想要处理的要多。
HTH, 布赖恩
【讨论】: