C#中enum與string的相互轉換的樣本

來源:互聯網
上載者:User
這篇文章主要介紹了C#中enum和string的相互轉換的相關資料,需要的朋友可以參考下

C# Json轉換操作

枚舉類型

Enum為枚舉提供基類,其基礎類型可以是除

Char 外的任何整型,如果沒有顯式聲明基礎類型,則使用Int32。

注意:枚舉類型的基底類型是除

Char 外的任何整型,所以枚舉類型的值是整型值

1、C#將枚舉轉為字串(enume->string)

我們的對象中包含枚舉類型,在序列化成Json字串的時候,顯示的是枚舉類型對應的數字。因為這是枚舉的

本質所在,但是很多時候需要在JSON轉化的時候做一些操作,使之顯示字串,因為使用者需要字串。

方法就是:在枚舉類型上添加屬性標籤


[JsonConverter(typeof(StringEnumConverter))]

舉例如下:

1)、在定義枚舉類型時在類型上聲明一個屬性即可

在MODEL project上引用Json.net

DLL

然後加上Attribute [JsonConverter(typeof(StringEnumConverter))]

eg:


public enumRecipientStatus{Sent,Delivered,Signed,Declined}public classRecipientsInfoDepartResult{[JsonConverter(typeof(StringEnumConverter))]//屬性將枚舉轉換為stringpublic RecipientStatus status {set; get; }public PositionBeanResult PredefineSign {set; get; }}

2)、利用Enum的靜態方法GetName與GetNames


eg : public staticstring GetName(Type enumType,Object value)public static string[] GetNames(Type enumType)

例如:


Enum.GetName(typeof(Colors),3))與Enum.GetName(typeof(Colors),Colors.Blue))的值都是"Blue"Enum.GetNames(typeof(Colors))將返回枚舉字串數組

3)、RecipientStatus ty = RecipientStatus.Delivered;


ty.ToString();

2、字串轉枚舉(string->enum)

1)、利用Enum的靜態方法Parse: Enum.Parse()

原型:


public static Object Parse(Type enumType,string value)eg : (Colors)Enum.Parse(typeof(Colors), "Red");(T)Enum.Parse(typeof(T),strType)

一個模板函數支援任何枚舉類型


protected staticT GetType<T>(string strType){T t = (T)Enum.Parse(typeof(T),strType);return t;}

判斷某個枚舉變數是否在定義中:


RecipientStatus type = RecipientStatus.Sent;Enum.IsDefined(typeof(RecipientStatus),type );

總結

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.