精华内容
下载资源
问答
  • 一、声明枚举值枚举值描述 using System.ComponentModel; public enum status { /// <summary> /// 取消 /// </summary> [Description("取消")] cancel, /// <summary> /// 提交 ///...

    一、声明枚举值、枚举值描述

    using System.ComponentModel;
    
    public enum status
    {
    	/// <summary>
    	/// 取消
    	/// </summary>
    	[Description("取消")]
    	cancel,
    	/// <summary>
    	/// 提交
    	/// </summary>
    	[Description("提交")]
    	submit,
    	/// <summary>
    	/// 同意
    	/// </summary>
    	[Description("批准")]
    	pass,
    	/// <summary>
    	/// 驳回
    	/// </summary>
    	[Description("驳回")]
    	reject
    }

    二、获取枚举值字符串、根据枚举获取枚举值描述

    /// <summary>
    /// 获取枚举描述信息
    /// </summary>
    /// <param name="enumValue"></param>
    /// <returns></returns>
    public static string GetEnumDescription(this Enum enumValue) {
    	string str = enumValue.ToString();
    	System.Reflection.FieldInfo field = enumValue.GetType().GetField(str);
    	object[] objs = field.GetCustomAttributes(typeof(System.ComponentModel.DescriptionAttribute) , false);
    	if (objs == null || objs.Length == 0)
    		return str;
    	System.ComponentModel.DescriptionAttribute da = (System.ComponentModel.DescriptionAttribute)objs[0];
    	return da.Description;
    }
    
    /*
    示例:string statusDes = status.submit.GetEnumDescription();
    */
    
    /// <summary>
    /// 枚举字符串
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <param name="enumValue"></param>
    /// <returns></returns>
    public static string GetEnumString<T>(this Enum enumValue) {
    	return Enum.GetName(typeof(T) , enumValue);//推荐  
    }
    
    /*
    示例:string status = status.submit.GetEnumString<status>();
    */
    
    /// <summary>
    /// 根据Description获取枚举
    /// </summary>
    /// <typeparam name="T">枚举类型</typeparam>
    /// <param name="description">枚举描述</param>
    /// <returns>枚举</returns>
    public static string GetEnumName<T>(string description)
    {
    	Type _type = typeof(T);
    	foreach (FieldInfo field in _type.GetFields())
    	{
    		DescriptionAttribute[] _curDesc = field.GetDescriptAttr();
    		if (_curDesc != null && _curDesc.Length > 0)
    		{
    			if (_curDesc[0].Description == description)
    				return field.GetValue(null).ToString();
    		}
    	}
    
    	return null;
    }
    
    /*
    示例:string status = GetEnumName<status>("提交");
    */
    

    三、根据枚举值变量获取枚举描述信息

    status statusEnum;
    //方式1
    Enum.TryParse<status>(strStatus, out statusEnum);
    
    //方式2
    statusEnum = (status)Enum.Parse(typeof(status), strStatus);
    
    string strStatusDes = statusEnum.GetEnumDescription();

     

    展开全文
  • 枚举值什么

    千次阅读 2018-03-21 19:32:58
    枚举是一种固定的类型,并且一个枚举对应着几个定义好的值,就称为枚举值。例如:定义了week 这个枚举,既然是week (星期),它的值会有七个,星期一到星期天,而这七个每个都是称为枚举值。...
    枚举是一种固定的类型,并且一个枚举对应着几个定义好的值,就称为枚举值。
    例如:定义了week 这个枚举,既然是week (星期),它的值会有七个,星期一到星期天,而这七个每个都是称为枚举值。
    展开全文
  • Java 遍历枚举值

    千次阅读 2020-09-19 09:18:46
    Java 遍历枚举值 枚举是Java中数据类型,用于将一组预定义常量赋给变量。本文介绍几种方式遍历枚举值。 1. 定义枚举 首先我们定义枚举,简单示例如下: public enum DaysOfWeekEnum { SUNDAY, MONDAY, TUESDAY, ...

    Java 遍历枚举值

    枚举是Java中数据类型,用于将一组预定义常量赋给变量。本文介绍几种方式遍历枚举值。

    1. 定义枚举

    首先我们定义枚举,简单示例如下:

    public enum DaysOfWeekEnum {
        SUNDAY,
        MONDAY,
        TUESDAY, 
        WEDNESDAY, 
        THURSDAY, 
        FRIDAY, 
        SATURDAY
    }
    

    Enum类型没有提供迭代方法,如forEach() 或 iterator(), 我们可以使用其values()方法的返回值。

    2. 遍历枚举

    2.1 使用for循环

    首先使用for循环实现:

    for (DaysOfWeekEnum day : DaysOfWeekEnum.values()) { 
        System.out.println(day); 
    }
    

    2.2 使用流方式

    我们也可以使用java.util.Stream,我们可以在枚举值上执行相应操作创建流:

    Stream.of(DaysOfWeekEnum.values());
    

    或者:

    Arrays.stream(DaysOfWeekEnum.values());
    

    这里扩展上面的枚举类,使用流方式实现:

    public enum DaysOfWeekEnum {
        
        SUNDAY("off"), 
        MONDAY("working"), 
        TUESDAY("working"), 
        WEDNESDAY("working"), 
        THURSDAY("working"), 
        FRIDAY("working"), 
        SATURDAY("off");
     
        private String typeOfDay;
     
        DaysOfWeekEnum(String typeOfDay) {
            this.typeOfDay = typeOfDay;
        }
    	
        // standard getters and setters 
     
        public static Stream<DaysOfWeekEnum> stream() {
            return Stream.Of(DaysOfWeekEnum.values()); 
        }
    }
    

    现在写示例按顺序打印非工作日:

    public class EnumStreamExample {
     
        public static void main() {
            DaysOfWeekEnum.stream()
            .filter(d -> d.getTypeOfDay().equals("off"))
            .forEach(System.out::println);
        }
    }
    

    输出:

    SUNDAY
    SATURDAY
    

    2.3 使用forEach

    forEach方法是Java8开始引入,所有集合类都有其实现。为了在枚举中使用,首先需要转换枚举为集合子类。我们可以使用Arrays.asList方法生成ArrayList,然后使用forEach方法:

    Arrays.asList(DaysOfWeekEnum.values())
      .forEach(day -> System.out.println(day));
    

    2.4 使用EnumSet

    EnumSet是针对枚举类型的特殊实现:

    EnumSet.allOf(DaysOfWeekEnum.class)
      .forEach(day -> System.out.println(day));
    

    2.5 使用枚举类型的ArrayList

    我们可以往List中增加枚举值,这样可以按任何顺序操作List:

    List<DaysOfWeekEnum> days = new ArrayList<>();
    days.add(DaysOfWeekEnum.FRIDAY);
    days.add(DaysOfWeekEnum.SATURDAY);
    days.add(DaysOfWeekEnum.SUNDAY);
    for (DaysOfWeekEnum day : days) {
        System.out.println(day);
    }
    days.remove(DaysOfWeekEnum.SATURDAY);
    if (!days.contains(DaysOfWeekEnum.SATURDAY)) {
        System.out.println("Saturday is no longer in the list");
    }
    for (DaysOfWeekEnum day : days) {
        System.out.println(day);
    }
    

    也可以使用 Arrays.asList()方法创建ArrayList。但ArrayList底层的枚举值数组值是不可变的,因此不能对List进行增加或删除项,否则会抛出异常 UnsupportedOperationException:

    List<DaysOfWeekEnum> days = Arrays.asList(DaysOfWeekEnum.values());
    days.remove(0);
    

    3. 总结

    我们看到使用多种方式迭代枚举,forEach,Stream以及for等。如果需要执行并行操作可以使用stream方式,否则几种方式没有太多差异。

    展开全文
  • 枚举值与枚举类

    2017-08-03 19:58:47
    }枚举类为特殊类,上述列子就申请了两个枚举值,man和woman,这两个枚举值默认为此类的以private static final修饰的内部类,这就保证了枚举值的限制性,当传值时使用枚举类就保证了传值的限制。 特点 1.枚举类是...

    enum Sex{
    man,woman;
    }


    枚举类为特殊类,上述列子就申请了两个枚举值,man和woman,这两个枚举值默认为此类的以private static final修饰的内部类,这就保证了枚举值的限制性,当传值时使用枚举类就保证了传值的限制。
    特点
    1.枚举类是特殊类
    2.枚举类默认修饰符为public static final
    3.枚举值是枚举类所属类的数据类型
    4.枚举类的构造方法默认修饰符为private
    5.枚举类可以定义自己的成员变量和成员函数
    6.枚举类可以定义构造方法,但构造方法必须用private修饰,构造传参在内部申请内部时传参


    enum Sex{
    man(“男”),woman(“女”);
    }


    7.枚举类可以存在抽象方法,但在申请内部类时需要实现


    enum Sex{
    man(“男”){
    public void run() {
    System.out.println(“男人在跑”);
    }
    },woman(“女”){
    public void run(){
    System.out.println(“女人在跑”);
    }
    };
    }


    8.枚举值必须位于枚举类最前面
    9.在switch语句中,case后只需要单鞋枚举值就行,不用加(枚举类名字.)

    展开全文
  • 这里首先给出枚举值:using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace RadioButtonValue { public enum EmunMyString { A,
  • 枚举类型、枚举名称、枚举值

    千次阅读 2018-08-23 23:29:50
    先看一个枚举类: from enum import Enum class Color(Enum): YELLOW = 1 GREEN = 2 ...print(Color.GREEN.value) # 枚举值 取值 Color.GREEN.value print(Color.GREEN.name) # 枚举名称 print(Co...
  • Java 枚举值的用法

    2017-07-24 18:34:02
    Java 枚举值的用法
  • 遍历枚举值

    千次阅读 2013-09-09 20:56:00
    为了方便,我们通常将同类选项封装成枚举里,有时为了能...public static Array GetValues(Type enumType),Array:所有枚举值的集合,enumType:要获取的枚举类型 比如获取Colors里的所有颜色代码如下: enum Colo
  • 4.输入今天是星期几的序号(0~6代表星期天至星期六),给今天和昨天赋予枚举值,并输出昨天是星期几的枚举值 思路: 枚举常量定义时,按顺序依次为0~6 通过switch判断星期几,确定昨天的序号,通过枚举值赋值(注意...
  • 动态增加枚举值

    2020-05-12 10:17:44
        之前做东西遇到了这么一个需求,希望动态的增加枚举类中的枚举值。我们正常情况下都是先定义枚举类,然后写好静态的枚举值,然后在代码中使用,那可不可以动态的增加枚举呢?研究后通过反射是可以实现的。...
  • 枚举中枚举值和枚举数的相互转换

    千次阅读 2017-08-17 21:28:43
    枚举数和枚举值
  • Java根据枚举名使用反射获取枚举值

    千次阅读 2018-12-12 18:36:26
    由于前端需要根据枚举名获取实时获取枚举值,所以通过反射去得到枚举数据. (一) 首先我们新建一个枚举类接口,用于之后反射使用 package com.littlematch.enums.biz; /** * 枚举值接口定义类 */ public interface ...
  • 概述:两个枚举间可通过int值进行关联,从而实现通过一个枚举值获取另一枚举值,而达到本案例中通过国家全称获取国家简称,反之亦然。 实现:直接看代码: 先定义两个枚举 public enum Country { US, CA, ...
  • springboot + mybatis 处理枚举值

    千次阅读 2019-02-17 19:25:01
    二、自定义枚举值处理器 三、配置 四、原理 一、TypeHandler 针对各种类型的处理器 已经内置很的处理器(TypeHandlerRegistry 初始化时就已经加载了) 注意:对于枚举值,有默认的处理器,EnumTypeHandler...
  • 给定个枚举,动态输出枚举值

    千次阅读 2014-12-02 16:57:13
    背景:  项目中有大量的枚举型数值,已经运维了几年的时间,相当一部分是定义的16进制数,但对应... 可以动态输出对应的枚举值。 代码如下: private static T PrintEnumValue() { #region ### test enum v
  • 枚举在开发中经常用到,可以表示一种事物的几种不同状态或者类型等,于是我们通常要根据当前的状态来和枚举元素进行比较来得到当前是什么状态,但是我发现一个问题,枚举值的比较真的是按照我们给枚举赋的值来单纯地...
  • layui如何实现枚举值

    千次阅读 2019-07-03 11:46:17
    最近在使用layui的时候,在表格填充的时候发现一件比较坑的事情,那就是当我表里存储的是枚举值(即数据库中存1.2,1代表男,2代表女)的时候,想在前台显示相应的类型,但是layui没有提供我想象中的简便的工具。...
  • swagger展示属性枚举值

    千次阅读 2019-11-15 16:07:09
    通过为@ApiModelProperty注解属性allowableValues设置值,在swagger上展示该属性接受的入参枚举值。 示例如下: @ApiModelProperty(value = "性别", allowableValues = "male, female") private String...
  • 目标:分解一个枚举类型变量包含的枚举值 如: Langs langJava = Langs.Csharp | Langs.Python; 解决办法: 关键点在于枚举定义时需加[System.Flags]特性标记 枚举定义: [System.Flags] enum Langs { ...
  • 随机获取枚举值

    2020-06-06 10:32:00
    /// 随机获取枚举值 /// </summary> /// <typeparam name="T"></typeparam> /// <returns></returns> public static T RandomEnum<T>() { T[] results = Enum.GetValues...
  • 前端获取所有枚举值

    千次阅读 2019-07-25 11:25:39
    在实际项目中,有很用到枚举的地方,比如状态 类别等,很时候在列表查询的时候,这些状态都是作为查询条件的,所以就需要前端老哥发请求到后台来查询枚举值,这里需要注意了,一般情况下,别让前端老哥写死了,这是很不...
  • 枚举类中获取枚举值的几种方法

    万次阅读 2019-03-17 21:02:36
    在开发的过程中我们经常会定义枚举类,枚举类中获取枚举值的方式也有很种,下面我们就探究一下大家常用的几种方式: 枚举类 public enum TestEnum { ONE(1,"one"), ZERO(0,"zero"), TWO(2,...
  • vue对枚举值转换

    千次阅读 2020-09-29 11:47:24
    最近再做项目中碰到了这样一个问题,前端vue对后端返回数据中的枚举值做处理。之前枚举值的转换都在后端返回dto中做处理,首次碰到这种问题,先将解决方案抛出,希望能帮到有缘人: <el-table v-loading="loading...
  • C# 枚举值 (二) 属性 操作

    千次阅读 2017-09-19 17:02:55
    时候,我们的枚举值可能需要中英文, 那么可以使用下面的方法: 下面这个类,包含2部分。 1 BaseDescriptionAttribute特性的重载 2 枚举的操作类 EnumOperate namespace TestMVC.Lang { public class ...
  • 我们知道在JAVA编写一个枚举类之后,在调用时系统就会自动给它生成一个values()的数组,通过这个数组就可按索引获取枚举值 但是如果我们声明的是一个枚举的范型类呢?我们知道所有的JAVA枚举类,其实都是继承Enum类...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 459,463
精华内容 183,785
关键字:

多枚举值