Enum和String的转换方法
Enum为枚举提供基类,
其基础类型可以是除
Char
外的任何整型, 如果没有显式声明基础类型,
则使用 Int32。
所以枚举类型的值是整型值。
C#将枚举转为字符串
C# 将枚举转为字符串( enume-> string)
我们的对象中包含枚举类型, 在序列化成Json字符串的时候, 显示的是枚举类型对应的数字。 因为这是枚举的本质所在, 但是很多时候需要在JSON转化的时候做一些操作, 使之显示字符串, 因为用户需要字符串。
方法就是: 在枚举类型上添加属性标签
[ JsonConverter( typeof( StringEnumConverter))]
举例如下:
1)、 在定义枚举类型时在类型上声明一个属性即可
在MODEL project上引用Json. net DLL
然后加上Attribute [ JsonConverter( typeof( StringEnumConverter))]
eg: public enum RecipientStatus
{ [ JsonConverter ( typeof ( StringEnumConverter ))]
Sent,
[ JsonConverter ( typeof ( StringEnumConverter ))]
Delivered,
[ JsonConverter ( typeof ( StringEnumConverter ))]
Signed,
[ JsonConverter ( typeof ( StringEnumConverter ))]
Declined
}
当然你还要加上命名空间, using Newtonsoft.Json.Linq;之类的东西,快捷键 Alt + F10,自动添加。
public class RecipientsInfoDepartResult
{
[ JsonConverter( typeof( StringEnumConverter))]
//属性将枚举转换为string
public RecipientStatus status { set; get; }
public PositionBeanResult PredefineSign { set; get; }
}
利用Enum的静态方法GetName与GetNames
eg :
public static string 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))将返回枚举字符串数组
RecipientStatus ty = RecipientStatus.Delivered;
ty.ToString();
字符串转枚举( string->enum)
利用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 static T GetType< T>( string strType)
{
T t = ( T) Enum. Parse( typeof( T), strType);
return t;
}
判断某个枚举变量是否在定义中:
RecipientStatus type = RecipientStatus. Sent;
Enum. IsDefined( typeof( RecipientStatus), type );
Enum–>Int
因为枚举的基类型是除 Char 外的整型,所以可以进行强制转换。
例如:(int)Colors.Red, (byte)Colors.Green
注释也是必不可少的
C# Enum,Int,String的互相转换
https://blog.csdn.net/WonderfulGrass/article/details/83810084?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control&dist_request_id=1328689.19487.16166350341638281&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control