Пример #1
0
        /// <summary>
        /// 分页获取数据
        /// </summary>
        /// <typeparam name="T">类型</typeparam>
        /// <param name="key">key</param>
        /// <param name="pageIndex">起始页</param>
        /// <param name="pageSize">页记录数</param>
        /// <param name="recordCount">返回记录总数</param>
        /// <returns>返回对象列表</returns>
        public static IList <T> GetDataList <T>(string key, int pageIndex, int pageSize, out int recordCount)
        {
            recordCount = 0;  //返回记录数

            //非法输入检查
            if (string.IsNullOrWhiteSpace(key))
            {
                return(null);
            }

            int fromIndex = pageIndex - 1;  //redis的index是从0开始的
            int toIndex   = pageSize - 1;

            RedisKey rk = key.RedisProtobuf();

            recordCount = rk.LstCount();


            if (fromIndex > 0)
            {
                fromIndex = (fromIndex * toIndex) + (pageIndex - 1);
                toIndex   = fromIndex + toIndex;
            }

            if (fromIndex < 0)
            {
                fromIndex = 0;
            }

            IList <T> userlist = GetDataListByRange <T>(key, fromIndex, toIndex);

            return(userlist);
        }