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

发布于 2024-10-06 11:55:17 字数 244 浏览 3 评论 0原文

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

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

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

I have the following enum in an ASP.NET MVC application, and I want to use that enum as a parameter. To do so, I'd like to to return the lowercase string representation of that enum.

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

How can I get the lowercase representation of an enum in C#? I'd like for the enums to retain their natural titlecase representation as well.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

他夏了夏天 2024-10-13 11:55:17

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

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

No, there isn't except for an extension method on object.

public static string ToLower (this object obj)
{
  return obj.ToString().ToLower();
}
多孤肩上扛 2024-10-13 11:55:17

有没有办法获取小写字符串异常:value.ToString().ToLower()?

否(除非您更改枚举:最新评级相关性...)

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

Is there any way to get the string in lower case exceptiong: value.ToString().ToLower() ?

No (unless you change the enum: newest, rating, relevance...)

A common technique is to add an attribute against each enum member, specifying the string that you want to associate with it, For instance:
http://weblogs.asp.net/grantbarrington/archive/2009/01/19/enumhelper-getting-a-friendly-description-from-an-enum.aspx

轻拂→两袖风尘 2024-10-13 11:55:17

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

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

哈特哈,
布莱恩

If what is displaying the enum text is aware of (and utilizes) the System.ComponentModel namespace, then you can decorate the enum with the System.ComponentModel.DescriptionAttribute and type the lowercase version in yourself.

If you are directly getting the string value, you can still do this, though the overhead of you writing the reflection code may be more than you want to deal with.

HTH,
Brian

谎言月老 2024-10-13 11:55:17

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

You might also use Enum.GetNames(...) to get a string array containing the enum values. Then, convert these to lower case. To convert from string to the respective enum value you can use the Enum.Parse method passing true in the third parameter, which makes the comparison case insensitive.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文