[英]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()?
否(除非您更改枚舉: newest
, rating
, relevance
......)
一種常見的技術是為每個枚舉成員添加一個屬性,指定要與其關聯的字符串,例如: 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.