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);
    }

  • 相关阅读:
    苦逼也聊模式--(0)--开篇
    发现无力吐槽
    JS函数调用
    初步使用nodejs(一)
    测试一下
    达摩流浪者
    Revit:二开使用Sqlite保存本地数据,并配合EF6等ORM框架
    Revity:查找并修改类型参数和实例参数
    复习一下UML
    Revit:ElementFilter过滤器基类
  • 原文地址:https://www.cnblogs.com/linweifan/p/5264780.html
Copyright © 2011-2022 走看看