我在ASP.NET MVC應用程序中有以下enum
,我想使用該枚舉作爲參數。爲此,我想返回enum
的小寫字符串表示形式。如何獲得C#中枚舉的小寫形式?
public enum SortOrder
{
Newest = 0,
Rating = 1,
Relevance = 2
}
如何獲取C#中枚舉的小寫形式?我希望枚舉保留自然的標題表示形式。
我在ASP.NET MVC應用程序中有以下enum
,我想使用該枚舉作爲參數。爲此,我想返回enum
的小寫字符串表示形式。如何獲得C#中枚舉的小寫形式?
public enum SortOrder
{
Newest = 0,
Rating = 1,
Relevance = 2
}
如何獲取C#中枚舉的小寫形式?我希望枚舉保留自然的標題表示形式。
不,除object
以外沒有擴展方法。
public static string ToLower (this object obj)
{
return obj.ToString().ToLower();
}
有沒有什麼辦法讓小寫exceptiong字符串: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, Brian