/// <summary>
    /// 自定义谓词
    /// </summary>
    public class VPredication : IEnumerable<KeyValuePair<string, object>>
    {
        Dictionary<string, object> dicv = null;
        SpacePredication spacePredication = null;
        /// <summary>
        /// 区间谓词
        /// </summary>
        public SpacePredication SpacePredication { get { return this.spacePredication; } }
 
        /// <summary>
        /// 自定义区间 构造函数
        /// </summary>
        public VPredication()
        {
            spacePredication = new SpacePredication();
            dicv = new Dictionary<string, object>();
        }
 
        /// <summary>
        /// 验证键是否存在值
        /// </summary>
        /// <param name="index">键</param>
        /// <returns>bool</returns>
        public bool ContainsKey(string index)
        {
            return this.dicv.ContainsKey(index);
        }
 
        /// <summary>
        /// 索引器
        /// </summary>
        /// <param name="index">索引值</param>
        /// <returns>值</returns>
        public object this[string index]
        {
            get
            {
                if (dicv.ContainsKey(index))
                    return dicv[index];
                else
                    return null;
            }
        }
 
 
        /// <summary>
        /// 增加新项
        /// </summary>
        /// <param name="key">列枚举[只能接受非FLAG得单个枚举]</param>
        /// <param name="extremumPair"></param>
        public void AddItem(string key, object value)
        {
            this.dicv.Add(key, value);
        }
        /// <summary>
        /// 移除制定 列枚举 的项
        /// </summary>
        /// <param name="key">列枚举[只能接受非FLAG得单个枚举]</param>
        public void RemoveItem(string key)
        {
            this.dicv.Remove(key);
        }
 
        #region IEnumerable<KeyValuePair<string,object>> 成员
 
        public IEnumerator<KeyValuePair<string, object>> GetEnumerator()
        {
            return this.dicv.GetEnumerator();
        }
 
        #endregion
 
        #region IEnumerable 成员
 
        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
        {
            return this.dicv.GetEnumerator();
        }
 
        #endregion
    }
    /// <summary>
    /// 区间谓词
    /// </summary>
    public class SpacePredication : IEnumerable<KeyValuePair<string, ExtremumPair>>
    {
        Dictionary<string, ExtremumPair> dic = null;
        /// <summary>
        /// 区间谓词 构造函数
        /// </summary>
        public SpacePredication()
        {
            dic = new Dictionary<string, ExtremumPair>();
 
        }
 
        /// <summary>
        /// 索引器
        /// </summary>
        /// <param name="index">索引值</param>
        /// <returns>区间极值值对</returns>
        public ExtremumPair this[string index]
        {
            get { return dic[index]; }
        }
 
        /// <summary>
        /// 验证键是否存在值
        /// </summary>
        /// <param name="index">键</param>
        /// <returns>bool</returns>
        public bool ContainsKey(string index)
        {
            return this.dic.ContainsKey(index);
        }
 
 
 
        /// <summary>
        /// 增加新项
        /// </summary>
        /// <param name="_enum">列枚举[只能接受非FLAG得单个枚举]</param>
        /// <param name="extremumPair"></param>
        public void AddItem(string key, ExtremumPair extremumPair)
        {
            this.dic.Add(key, extremumPair);
        }
        /// <summary>
        /// 移除制定 列枚举 的项
        /// </summary>
        /// <param name="key">列枚举[只能接受非FLAG得单个枚举]</param>
        public void RemoveItem(string key)
        {
            this.dic.Remove(key);
        }
 
        #region IEnumerable<KeyValuePair<string,ExtremumPair>> 成员
 
        public IEnumerator<KeyValuePair<string, ExtremumPair>> GetEnumerator()
        {
            return this.dic.GetEnumerator();
        }
 
        #endregion
 
        #region IEnumerable 成员
 
        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
        {
            return this.dic.GetEnumerator();
        }
 
        #endregion
    }
 
    /// <summary>
    /// 区间极值值对
    /// </summary>
    public class ExtremumPair
    {
        object leftValue, rightValue;
        /// <summary>
        /// 左极值
        /// </summary>
        public object LeftValue { get { return leftValue; } }
        /// <summary>
        /// 右极值
        /// </summary>
        public object RightValue { get { return rightValue; } }
        /// <summary>
        /// 区间极值值对 构造函数
        /// </summary>
        /// <param name="leftValue">左极值</param>
        /// <param name="rightValue">右极值</param>
        public ExtremumPair(object leftValue, object rightValue)
        {
            this.leftValue = leftValue;
            this.rightValue = rightValue;
        }
    }
 
    /// <summary>
    /// 通用分页参数 
    /// </summary>
    public class PagingParam
    {
        int pageSize = 10;
        int pageIndex = 1;
        int pageTotal = -1;
        /// <summary>
        /// 页面大小
        /// </summary>
        public int PageSize { get { return pageSize; } }
        /// <summary>
        /// 页码
        /// </summary>
        public int PageIndex { get { return pageIndex; } }
 
        public int PageTotal { get { return pageTotal; } }
        /// 构造函数
        /// </summary>
        public PagingParam()
        {
        }
        /// <summary>
        /// 通用分页参数结构 构造函数
        /// </summary>
        /// <param name="pageIndex">页码</param>
        /// <param name="pageSize">页面大小</param>
        public PagingParam(int pageIndex, int pageSize)
        {
            this.pageIndex = pageIndex;
            this.pageSize = pageSize;
            this.pageTotal = PageSize;
        }
 
        public PagingParam(int pageIndex, int pageSize, int pageTotal)
        {
            this.pageIndex = pageIndex;
            this.pageSize = pageSize;
            this.pageTotal = pageTotal;
        }
 

}

本文转自博客园张占岭(仓储大叔)的博客,原文链接:项目中的通用查询参数类,它体现了项目架构的大局观,如需转载请自行联系原博主。

项目中的通用查询参数类,它体现了项目架构的大局观相关推荐

  1. Android项目中常用的工具类集(史上最全整理)

    如果你是一名有经验的Android开发者,那么你一定积累了不少的工具类,这些工具类是帮助我们快速开发的基础.如果你是新手,那么有了这些辅助类,可以让你的项目做起来更加的简单. 下面介绍一个在GitHu ...

  2. Entity Framework 的小实例:在项目中添加一个实体类,并做插入操作

    Entity Framework 的小实例:在项目中添加一个实体类,并做插入操作 Entity Framework 的小实例:在项目中添加一个实体类,并做插入操作 1>. 创建一个控制台程序 2 ...

  3. Android项目中最火最常用的优秀开源项目(很有用)

    Android项目中最火最常用的优秀开源项目 分类 详细 框架名称 简介 Star 数 最近 更新 UI 刷新 SmartRefreshLayout Android 智能下拉刷新框架 7.7k 1天 ...

  4. 在项目中谨慎为系统类添加分类!!!!!

    结论: 1.坚决杜绝为系统类做方法交换(见到[class_replaceMethod]格杀勿论!) 2.为系统类添加分类时候,属性和方法名必须加上[世上独一无二]的前缀,避免冲突和混淆. 之所以让我对 ...

  5. qt项目中的某一个类的输出中文信息乱码,其它类中文输出正常

    问题描述 qtcreate5.13.2中整个项目中通过添加头文件,使用qDebug()输出中文打印信息,输出中文都是正常的,但是有一个类的输出中文是乱码. 解决方法 修改该类的编码格式.由于项目默认采 ...

  6. Swift项目中不能定义OC类继承Swift类

    2019独角兽企业重金招聘Python工程师标准>>> 报错原因 Swift项目中 OC文件类  继承  Swift文件类 Cannot subclass a class with ...

  7. SpringMVC,MyBatis项目中兼容Oracle和MySql的解决方案及其项目环境搭建配置、web项目中的单元测试写法、HttpClient调用post请求等案例

     要搭建的项目的项目结构如下(使用的框架为:Spring.SpingMVC.MyBatis): 2.pom.xml中的配置如下(注意,本工程分为几个小的子工程,另外两个工程最终是jar包): 其中 ...

  8. 项目中的难点怎么克服_克服大型项目中的文档挑战

    项目中的难点怎么克服 鉴于最近熊猫( Pandas) ,NumPy和Matplotlib等开放源数据科学项目的普及Swift增长,人们对文档的兴趣日益浓厚 ,这不足为奇. 为了帮助您了解所面临的问题, ...

  9. 项目中使用粘性布局不起作用_项目中的 Git 使用规范

    祖师爷 Linus 在创造了伟大的 Linux 之后,又创造了应用最广泛的代码管理工具 -- Git,极大地提高了程序员的生产力. 现如今大部分项目都在使用 Git 作为代码管理工具,不论是在代码管理 ...

  10. vue 项目中使用粘性布局不起作用_vue项目中常见问题及解决方案

    webpack项目中自动引入全局scss变量文件 假设我们有一个公共的scss变量文件variables.scss /*存放所有全局变量*/$card-title:#C7D200; //首页 卡片标题 ...

最新文章

  1. 【面向对象编程】(1) 类实例化的基本方法
  2. 关于域的的一些遐想(一)
  3. pagerslidingtabstrip 横向滑动
  4. python signal模块的使用(自定义超时异常)
  5. 【Python基础】本地利用ssh远程连接服务器并启用远程服务器的jupyter lab并配置好anaconda的环境...
  6. Spring JSR-250 注释
  7. 18-Gm-TransH:Group-Constrained Embedding of Multi-fold Relations in Knowledge Bases,嵌入,transH,n-ary
  8. Windows XP解决显示桌面图标消失的问题
  9. 【社会/人文】概念的理解 —— 断舍离、饭(饭制版)
  10. C#正则表达式小结 - z
  11. 打印机服务器不支持1020,HP1020打印机驱动安装不上的解决办法
  12. JSP文件的中文在浏览器上显示乱码解决方法
  13. 50款PS完美汉化插件一键安装,win+mac
  14. Python实现简易语音转文字功能模块
  15. phpstuday2018下载
  16. 世界名牌CD机解码芯片大全
  17. Julia会是超越Python的存在吗
  18. 一文入门JavaScript
  19. Beautiful爬取海词网词汇意思和短语
  20. OneTab插件的替代产品-OneTab Pro

热门文章

  1. RIDE的底部的日志没显示处理
  2. Android 设计模式实战之关于封装计费代码库的策略模式详谈
  3. Selenium菜鸟手册
  4. magento -- 如何在magento中进行产品的批量上传
  5. oracle中rollback的使用方法
  6. 从44.556677想到的
  7. [九省联考2018] 一双木棋 chess
  8. java折半查找(递归版)
  9. css3的那些高级选择器一
  10. King Arthur