簡體   English   中英

如何在C#中獲取枚舉的小寫表示?

[英]How do I get the lowercase representation of an enum in C#?

我在ASP.NET MVC應用程序中有以下enum ,我想將該枚舉用作參數。 為此,我想返回該enum的小寫字符串表示形式。

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

如何在C#中獲取枚舉的小寫表示? 我想讓enums保留他們的天然標題表示。

不,除了object的擴展方法之外沒有。

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

有沒有辦法得到小寫例外的字符串例外:value.ToString()。ToLower()?

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

一種常見的技術是為每個枚舉成員添加一個屬性,指定要與其關聯的字符串,例如: http//weblogs.asp.net/grantbarrington/archive/2009/01/19/enumhelper-getting -a友好,說明從-的- enum.aspx

您也可以使用Enum.GetNames(...)來獲取包含枚舉值的字符串數組。 然后,將這些轉換為小寫。 要從字符串轉換為相應的枚舉值,您可以使用Enum.Parse方法在第三個參數中傳遞true ,這使得比較不區分大小寫。

如果顯示枚舉文本的內容知道(並利用)System.ComponentModel命名空間,那么您可以使用System.ComponentModel.DescriptionAttribute修飾枚舉,並在自己中鍵入小寫版本。

如果直接獲取字符串值,您仍然可以執行此操作,但編寫反射代碼的開銷可能超出了您想要處理的范圍。

HTH,Brian

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM