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 enum RecipientStatus { Sent, Delivered, Signed, Declined } public class RecipientsInfoDepartResult { [JsonConverter(typeof(StringEnumConverter))] //属性将枚举转换为string public RecipientStatus status { set; get; } public PositionBeanResult PredefineSign { set; get; } }
2)、利用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))将返回枚举字符串数组
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 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 );
总结
以上所述是小编给大家介绍的C#中enum和string的相互转换,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
相关推荐
-
C#中的IEnumerable接口深入研究
C#和VB.NET中的LINQ提供了一种与SQL查询类似的"对象查询"语言,对于熟悉SQL语言的人来说除了可以提供类似关联.分组查询的功能外,还能获取编译时检查和Intellisense的支持,使用Entity Framework更是能够自动为对象实体的查询生成SQL语句,所以很受大中型信息系统设计者的青睐. IEnumerable这个接口可以说是为了这个特性"量身定制",再加上微软提供的扩展(Extension)方法和Lambda表达式,给开发者带来了无穷的便利.
-
C#中的IEnumerable简介及简单实现实例
IEnumerable这个接口在MSDN上是这么说的,它是一个公开枚举数,该枚举数支持在非泛型集合上进行简单的迭代.换句话说,对于所有数组的遍历,都来自IEnumerable,那么我们就可以利用这个特性,来定义一个能够遍历字符串的通用方法. 下面先贴出code. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; us
-
C#中IEnumerable、ICollection、IList、List之间的区别
首先我看看 IEnumerable: // 摘要: // 公开枚举器,该枚举器支持在指定类型的集合上进行简单迭代. // // 类型参数: // T: // 要枚举的对象的类型. [TypeDependency("System.SZArrayHelper")] public interface IEnumerable<out T> : IEnumerable { // 摘要: // 返回一个循环访问集合的枚举器. // // 返回结果: // 可用于循环访问集合的 Syst
-
C#中Byte[]和String之间转换的方法
本文给大家介绍如何在Byte[]和String之间进行转换? 比特(b):比特只有0 1,1代表有脉冲,0代表无脉冲.它是计算机物理内存保存的最基本单元. 字节(B):8个比特,0-255的整数表示 编码:字符必须编码后才能被计算机处理.早期计算机使用7为AscII编码,为了处理汉字设计了中文简体GB2312和big5 字符串与字节数组之间的转换,事实上是现实世界的信息和数字世界信息之间的转换,势必涉及到某种编码方式,不同的编码方式将导致不同的转换结果.C#中常使用System.Text.Enc
-
C#中IEnumerable接口用法实例分析
本文实例讲述了C#中IEnumerable接口用法.分享给大家供大家参考.具体分析如下: 枚举数可用于读取集合中的数据,但不能用于修改基础集合. 最初,枚举数定位在集合中第一个元素前.Reset 方法还会将枚举数返回到此位置.在此位置上,Current 属性未定义.因此,在读取 Current 的值之前,必须调用 MoveNext 方法将枚举数提前到集合的第一个元素. 在调用 MoveNext 或 Reset 之前,Current 返回同一对象.MoveNext 将 Current 设置为下一个
-
C#判断一个String是否为数字类型
方案一:Try...Catch(执行效率不高) 复制代码 代码如下: private bool IsNumberic(string oText) { try { int var1=Convert.ToInt32 (oText); return true; } catch { return false; } } 方案二:正则表达式(推荐) a) 复制代码 代码如下: public static bool
-
C# 字符串string和内存流MemoryStream及比特数组byte[]之间相互转换
定义string变量为str,内存流变量为ms,比特数组为bt 1.字符串转比特数组 复制代码 代码如下: (1)byte[] bt=System.Text.Encoding.Default.GetBytes("字符串"); (2)byte[] bt=Convert.FromBase64String("字符串"); 2.字符串转流 复制代码 代码如下: (1)MemoryStream ms=new MemoryStream(System.Text.Encoding.
-
C# DateTime.ToString根据不同语言生成相应的时间格式
我想大家对DateTime.ToString()方法的用法肯定已经非常熟悉了,但我想大家用过的大部分用法都是:DateTime.ToString("format"),不过本文想讲述的是它的另一个重载方法DateTime.ToString("format",IFormatProvider). 如果大家做的项目中有多语言的需求的话,那么肯定少不了会有的功能要显示一个时间,由于文差异域每种语言用户对时间格式的需求肯定是不一样的,比如英文中的时间格式是:12/2/2013
-
C#中enum和string的相互转换
C# Json转换操作 枚举类型 Enum为枚举提供基类,其基础类型可以是除 Char 外的任何整型,如果没有显式声明基础类型,则使用Int32. 注意:枚举类型的基类型是除 Char 外的任何整型,所以枚举类型的值是整型值 1.C#将枚举转为字符串(enume->string) 我们的对象中包含枚举类型,在序列化成Json字符串的时候,显示的是枚举类型对应的数字.因为这是枚举的 本质所在,但是很多时候需要在JSON转化的时候做一些操作,使之显示字符串,因为用户需要字符串. 方法就是:在枚举类型
-
java 中enum的使用方法详解
java 中enum的使用方法详解 enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性,存放在 java.lang 包中. 下面是我在使用 enum 过程中的一些经验和总结. 原始的接口定义常量 public interface IConstants { String MON = "Mon"; String TUE = "Tue"; String WED = "Wed"; String THU = "Thu
-
java中enum的用法
本文实例讲述了java中enum的用法.分享给大家供大家参考.具体分析如下: 1. 基本用法 复制代码 代码如下: enum Day { SUNDAY, MONDAY, TUESDAY, WENDSDAY, THURSDAY, FRIDAY, SATURDAY; } 枚举是常量,所以应该用大写. 2. 枚举是对象 枚举隐含地继承了java.lang.Enum,所以它具有java.lang.Enum的属性和方法.遍历枚举: 复制代码 代码如下: public class Main {
-
详解Swift中enum枚举类型的用法
一.引言 在Objective-C语言中,没有实际上是整型数据,Swift中的枚举则更加灵活,开发者可以不为其分配值类型把枚举作为独立的类型来使用,也可以为其分配值,可以是字符,字符串,整型或者浮点型数据. 二.枚举语法 Swift中enum关键字来进行枚举的创建,使用case来创建每一个枚举值,示例如下: //创建姓氏枚举,和Objective-C不同,Swift枚举不会默认分配值 enum Surname { case 张 case 王 case 李 case 赵 } //创建一个枚举类型的
-
PHP中Enum(枚举)用法实例详解
本文实例讲述了PHP中Enum(枚举)用法.分享给大家供大家参考,具体如下: PHP其实有Enum类库的,需要安装perl扩展,所以不是php的标准扩展,因此代码的实现需要运行的php环境支持. (1)扩展类库SplEnum类.该类的摘要如下: SplEnum extends SplType { /* Constants */ const NULL __default = null ; /* 方法 */ public array getConstList ([ bool $include_def
-
Java Date与String的相互转换详解
Java Date与String的相互转换详解 前言: 我们在注册网站的时候,往往需要填写个人信息,如姓名,年龄,出生日期等,在页面上的出生日期的值传递到后台的时候是一个字符串,而我们存入数据库的时候确需要一个日期类型,反过来,在页面上显示的时候,需要从数据库获取出生日期,此时该类型为日期类型,然后需要将该日期类型转为字符串显示在页面上,Java的API中为我们提供了日期与字符串相互转运的类DateForamt.DateForamt是一个抽象类,所以平时使用的是它的子类SimpleDateFor
-
Java中数组与集合的相互转换实现解析
这篇文章主要介绍了Java中数组与集合的相互转换实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 List转数组:采用集合的toArray()方法 数组转List:采用Arrays的asList()方法 数组转换为集合 注意:在数组转集合的过程中,要注意是否使用了视图的方式直接返回数组中的数据.以Arrays.asList()为例,它把数组转换成集合时,不能使用其修改集合相关的方法,它的add/remove/clear方法会抛出 Unsu
-
go语言map与string的相互转换的实现
一.map转string import ( "encoding/json" ) func MapToJson(param map[string]interface{}) string{ dataType , _ := json.Marshal(param) dataString := string(dataType) return dataString } 二.string转map import ( "encoding/json" ) func JsonToMap(
-
解决MyBatis中Enum字段参数解析问题
目录 基础Class和TypeHandler 请求参数解析问题 问题解决 基础Class和TypeHandler MyBatis操作的基本User对象结构如下: @Data @Alias(value = "user") public class User implements Serializable { private static final long serialVersionUID = -4947062488310146862L; private Long id; @NotNu
-
在Java中int和byte[]的相互转换
之前的项目中,在Socket通信的时候需要传int类型的值,不过java中outputsteam貌似不能直接传int类型,只能传byte[],所以在这里记录一下int和byte[]互转的方法. /** * int转byte[] */ public static byte[] intToBytes(int i) { byte[] bytes = new byte[4]; bytes[0] = (byte) (i & 0xff); bytes[1] = (byte) ((i >> 8) &
随机推荐
- java单例模式实现面板切换
- C语言字符串操作总结大全(超详细)
- 将MSSQL Server 导入/导出到远程服务器教程的图文方法分享
- 【最新漏洞】IE中使用Rds.DataSpace下载并运行病毒文件
- 表单验证常用正则(强烈推荐大家收藏下)
- javascript轻松实现当鼠标移开时已弹出子菜单自动消失
- PHP中source #N问题的解决方法
- PHP实现的简单缓存类
- PHP json_encode() 函数详解及中文乱码问题
- python完成FizzBuzzWhizz问题(拉勾网面试题)示例
- Javascript开发之三数组对象实例介绍
- MySQL服务器的启动和关闭
- MySQL 触发器的基础操作(六)
- vue.js国际化 vue-i18n插件的使用详解
- 如何使用表单发送电子邮件?
- jQuery验证插件 Validate详解
- jquery 简单图片导航插件jquery.imgNav.js
- MongoDB安装到windows服务的方法及遇到问题的完美解决方案
- windows下实现定时重启Apache与MySQL方法
- 纯jQuery实现前端分页功能