• 一个枚举的简单应用


          换了新工作,接触到了新的环境,新的项目接触到了新的知识。呵呵,新知识之一:枚举。这最基本的知识了,早都接触过,但是用的地方还不太多。仔细了解一下,发现能用到地方还真不少。

             应用场景:

             image

            像这样表单中存多选的,估计谁都遇到过,解决方法当然也很多。

            方法1:

            数据字段设成nvarchar,保存格式如 |id1|id2|id3|,我之前项目就是这样做的,完成需求绝对不成问题:提取选择 id2 的数据时,只要该字段中出现 |id2| 文字数据就OK。

            方法2:

            另外创建一个表,也就所说的一对多,表连接,提取时 inner join就行了

            方法3:

             用枚举。上代码:

              定义枚举:

       /// <summary>
        /// 企业业务类型
        /// </summary>
        [Flags]
        public enum EnumTrade
        { 
            电台广告代理 = 0x01,
            电台广告策划 = 0x02,
            节目制作 = 0x04,
            节目发行 = 0x08,
            音频制作 = 0x10,
            其他 = 0x20
        }

            对枚举位标志不太了解的可以看看  关于枚举的种种

            以此做为数据源,我们可以写一个读取的方法,读取成可以绑定到控件的数据源或者自定义实呈现。当然,文本值(text)就是Enum的Name,而标识值(value)就是Enum的Value。数据库的字段可以建一个int类型的,存储的是  id1 | id2 | id5的结果。注意此时的 | 是 按位否操作符,我们存储的结果是所选的value的按位否操作后的结果。提取选择了 id2 的数据时,执行对应字段 与 id2 执行 按位与 操作的结果不为0就行了。

             呵呵,不用多说,按位操作也是最基本的操作,比起来模糊查询或连接表,效率肯定要高很多了,并且用枚举好处也是相当多,因为一个枚举本身包含两个值,不管获取值,还是获取Name都是相当方便。对于这样的一条包含name和value的数据对象来说枚举都是相当的方便和高效。

             但是这种解决方法也不是完美的,只适合数据类型不是太多的情况。例如你的物品面向城市是可以多选的,几千个城市,嗯,还是表连接来的更实际,哈哈。

            总结:枚举是个好东西。

  • 相关阅读:
    View Controller 生命周期的各个方法的用法
    IOS开发之Post 方式获取服务器数据
    委托代理
    Function
    SKPhysicsContactDelegate协议
    UITouch附加
    Remove Duplicates from Sorted Array II
    4Sum
    [Text Justification
    Count and Say
  • 原文地址:https://www.cnblogs.com/forcertain/p/1983852.html
Copyright © 2020-2023  润新知