首页 > 编程语言 >c#声明枚举,通过枚举int获取枚举value、通过枚举value获取int值、判断string值是否存在枚举中

c#声明枚举,通过枚举int获取枚举value、通过枚举value获取int值、判断string值是否存在枚举中

时间:2024-10-17 14:20:53浏览次数:7  
标签:string int Enum value 获取 枚举

c#声明枚举,通过枚举int获取枚举value、通过枚举value获取int值、判断string值是否存在枚举中

 

1、声明枚举

每个枚举常量可以用一个标识符来表示,也可以为它们指定一个整数值,如果没有指定,那么默认从 0 开始递增。

注意:第一个枚举成员的默认值为整型的 0,后续枚举成员的值在前一个成员上加 1。我们在这个实例中把第一个枚举成员的值定义为 1,第二个就为 2,以此类推。

可以在定义枚举类型时改变枚举元素的值:

enum season {spring, summer=3, autumn, winter};

没有指定值的枚举元素,其值为前一元素加 1。也就说 spring 的值为 0,summer 的值为 3,autumn 的值为 4,winter 的值为 5

例如:

复制代码
public enum RoomState_Enum
{
    课,   //0
    自,   //1
    闲    //2
}
复制代码

2、读取枚举值

读取是一个枚举类型的值,并且是他的key ;

比如:课就是获取到的是值1

 3、根据获取枚举的可以读取它的value

复制代码
  /// <summary>
        /// 枚举 int 转 枚举名称
        /// </summary>
        /// <typeparam name="T">枚举名</typeparam>
        /// <param name="itemValue">int值,枚举key值</param>
        /// <returns></returns>
        private string ConvertEnumToString<T>(int itemValue)
        {
            return Enum.Parse(typeof(T), itemValue.ToString()).ToString();
        }
复制代码

例如:

获取到了“自”;

复制代码
public enum RoomState_Enum
{
    课,   //0
    自,   //1
    闲    //2
}
复制代码
ConvertEnumToString<RoomState_Enum>(1);

 参考文献:https://blog.csdn.net/dibr63585/article/details/102042477

二、通过枚举string读取value

复制代码
 #region 5.获取枚举值
//枚举的string值:例如上面例子    此方法传入name="课"   返回0
 public static int ConvertEnumToInt<T>(string name)
 {
     return (int)Enum.Parse(typeof(T), name);
 }

 #endregion
复制代码

 三、判断string值是否存在枚举中

复制代码
//是否存在标志
RoomState_Enum flag;
//存在返回true  不存在为false  
//第一个参数就是要进行判断“课”是否存在枚举RoomState_Enum中
var ifhaveEnum = Enum.TryParse<RoomState_Enum>(“课”, true, out flag);
//如果存在,那么flag就是对应枚举
//要得到状态值就转为int      0
//要得到名称就转string     "课"
var sewq = flag.Ext_IsDBNull();
var sewq1 = (int)flag; 
复制代码

 

 参考文献:https://blog.csdn.net/weixin_33842328/article/details/85900683

 

本文来自博客园,作者:じ逐梦,转载请注明原文链接:https://www.cnblogs.com/ZhuMeng-Chao/p/17273025.html

标签:string,int,Enum,value,获取,枚举
From: https://www.cnblogs.com/sexintercourse/p/18472159

相关文章

  • eslint版本9.0之后配置方法
      npminit@eslint/config@latest √HowwouldyouliketouseESLint?·problems√Whattypeofmodulesdoesyourprojectuse?·esm√Whichframeworkdoesyourprojectuse?·vue√DoesyourprojectuseTypeScript?·javascript√Wheredoes......
  • extern int[] VS extern int*
    2024.10.16遇到了一个externType*出现崩溃,但externType[]正常的问题。声明:本文所有内容都基于64位系统和程序而言,32位原理一致,但数值上会有差异。现象通过查阅资料发现Externpointertovariablevsarray早就提过这个问题。//func.c#include<stdio.h>int......
  • Incorrect string value: ‘\xE8\x8D\x98\xE8\x83\xBD...‘ for column
    mysql>SELECTVERSION();+------------+|VERSION()|+------------+|5.6.51-log|+------------+1rowinset(0.00sec)[2024-10-1513:51:26]已连接>useproductqualification[2024-10-1513:51:26]在3ms内完成productqualification>INSERTINTO`......
  • 【CTF-SHOW】Web入门 Web27-身份证日期爆破 【关于bp intruder使用--详记录】
    1.点进去是一个登录系统,有录取名单和学籍信息发现通过姓名和身份证号可以进行录取查询,推测录取查询可能得到学生对应学号和密码,但是身份证号中的出生日期部分未知,所以可以进行爆破2.打开bp抓包这里注意抓的是学院录取查询系统发送POST类型进行查询的包,第一遍抓不到很正......
  • java 查看jvm使用哪个垃圾回收器 -XX:+PrintCommandLineFlags
    java查看jvm使用哪个垃圾回收器在Java中,你可以通过查看JVM启动参数来确定使用的垃圾收集器。你可以使用java命令的-XX:+PrintCommandLineFlags参数来打印出JVM的启动配置,包括选择的垃圾收集器。例如,你可以通过以下命令运行Java应用程序来查看使用的垃圾收集器:java-XX:+PrintC......
  • 模板-自动取模整型mint
    输入为int64类型,底层用int64表示,每次运算后自动取模。template<intMOD>structMInt{i64x;intnorm(i64u)const{u%=MOD;if(u<0)u+=MOD;returnu;}MInt(i64v=0):x(norm(v)){}intval()const{returnx;}MIntoperator-()const{returnMInt......
  • qt5报错无法枚举xxx字体:qt.qpa.fonts: Unable to enumerate family ' "WenYue XinQing
    问题描述:使用qt5时,出现错误提示:qt.qpa.fonts:Unabletoenumeratefamily'"WenYueXinQingNianTi(Non-CommercialUse)"'虽然不影响正常使用,但是还是希望解决。猜测:可能是qt5在自动枚举字体时,系统中安装的字体名称过长或其他参数不合规导致qt5无法枚举。如果此字体不是项......
  • DevEco Studio:代码code Linter检查
    CodeLinter代码检查CodeLinter针对ArkTS/TS代码进行最佳实践/编程规范方面的检查。检查规则支持配置,配置方式请参考配置代码检查规则。开发者可根据扫描结果中告警提示手工修复代码缺陷,或者执行一键式自动修复,在代码开发阶段,确保代码质量。检查方法:在已打开的代码编辑器窗......
  • 第九章习题3-编写一个函数print,打印一个学生的成绩数组,该数组有5个学生的数据记录,每个
     ......
  • IDEA如何查看所有的断点(Breakpoints)并关闭
    前言我们在使用IDEA开发Java应用时,基本上都需要进行打断点的操作,这方便我们排查BUG,也方便我们查看设计的是否正确。 不过有时候,我们不希望进入断点,这时候除了点击断点关闭外,有没有更快速的方便关闭所有的断点呢?如何设置首先,我们在运行debug模式的时候,切换到Debug的窗口,然后......