• 标志枚举以及位运算


    随手记记

    先定义下标志枚举:

    在项目的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);
    }

  • 相关阅读:
    P6585 中子衰变
    [APIO2020]有趣的旅途
    CF1354F Summoning Minions
    CF1361C Johnny and Megan's Necklace
    CF1368E Ski Accidents
    CF1458C Latin Square
    CF1368F Lamps on a Circle
    用户和组的管理
    Windows命令
    1
  • 原文地址:https://www.cnblogs.com/linweifan/p/5264780.html
Copyright © 2020-2023  润新知