zoukankan      html  css  js  c++  java
  • 标志枚举以及位运算

    随手记记

    先定义下标志枚举:

    在项目的model文件夹下新建一个IsEnums.cs类

    [Flags]
    public enum ABC
    {
    a=1,
    b=2,
    c=4,

    }

    然后在HomeController.cs类中引用下model,

    用标志枚举的好处就是可以进行自由组合,而标志枚举里定义每个都是2的N次方数,如果是定义成1,2,3这样的顺序组合起来就会冲突.

    当我们要进行一些组合来进行位运算的时候

    1的8位二进制值为00000001

    2的8位二进制值为00000010

    4的8位二进制值为00000100

    /*
    1:00000001
    2:00000010
    4:00000100
    8:00001000
    2+4:00000110
    1+2+4:00001110
    * 按位与是1&1是1,其余是0
    按位与比较
    2+4:00000110
    4:00000100
    * * * * * * * * * *
    00000100
    *
    按位与比较
    1+2+4:00001110
    4:00000100
    * * * * * * * * * * *
    00000100
    * 按位或是0|0是0,其余是1

    按位或比较
    2+4:00000110
    4:00000100
    * * * * * * * * * * *
    00000110
    *
    按位或比较
    1+2+4:00001110
    4:00000100
    * * * * * * * * * * *
    00001110

    */

    例如可以在控制器中进行与位算,匹配相应的数据

    public ActionResult Index()
    {
    var Type = (int)ABC.b;
    var data = _db.[表名].Where(i => (i.[字段名] & Type) == Type).ToList();
    return View(data);
    }

  • 相关阅读:
    开发技术--Numpy模块
    开发技术-IPython介绍
    开发--Deepin系统安装
    开发--CentOS-7安装及配置
    开发技术--设计模式
    English--音标重难点
    English--音标拼读
    English--辅音
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
  • 原文地址:https://www.cnblogs.com/linweifan/p/5264780.html
Copyright © 2011-2022 走看看