我在ASP.NET MVC应用程序中有以下enum
,我想将该枚举用作参数。为此,我想返回enum
的小写字符串表示。
public enum SortOrder
{
Newest = 0,
Rating = 1,
Relevance = 2
}
如何在C#中获取枚举的小写表示?我希望enums能够保留他们的天然标题表示。
答案 0 :(得分:12)
不,除object
上的扩展方法外没有。
public static string ToLower (this object obj)
{
return obj.ToString().ToLower();
}
答案 1 :(得分:2)
有没有办法以小写例句获取字符串例外:value.ToString()。ToLower()?
否(除非您更改枚举:newest
,rating
,relevance
...)
一种常见的技术是为每个枚举成员添加一个属性,指定要与之关联的字符串,例如: 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, 布赖恩