zoukankan      html  css  js  c++  java
  • 一个求分页的函数

    编写环境:SnippetCompiler

    不需要过多的解释,如有疑问请留言。

    using System;
    using System.Collections.Generic;
     
    public class MyClass
    {
        static int count=1234;
        static int pageSize=10;
        static int startIndex,endIndex;
        public static void RunSnippet()
        {
            GetDataArea(0);
            GetDataArea(1);
            GetDataArea(45);
            GetDataArea(123);
            GetDataArea(124);
            GetDataArea(1999);
        }
        
        private static void GetDataArea(int pageIndex)
        {
            GetDataArea(ref startIndex,ref endIndex,pageIndex,pageSize,count);
            Console.WriteLine("Page{2}\tArea is : \t{0} \t-- \t{1}",startIndex,endIndex,pageIndex);
        }
        
        private static void GetDataArea(ref int startIndex,ref int endIndex,int pageIndex,int pageSize,int count)
        {
            if(pageSize<=0||pageIndex<0||count<=0)
                throw new ArgumentException ("All paramater should bigger than zero!");
            
            try
            {
                startIndex=pageIndex*pageSize;
                endIndex=startIndex+pageSize-1;
            }
            catch
            {
                throw new ArgumentOutOfRangeException("May be the argument too bigger than Design!");
            }
            if(startIndex+1>count)
            {
                GetDataArea(ref startIndex,ref endIndex,pageIndex-1,pageSize,count);
                return;
            }
            if(count<endIndex+1)
                endIndex=count-1;
        }
        
        #region Helper methods
        
        public static void Main()
        {
            try
            {
                RunSnippet();
            }
            catch (Exception e)
            {
                string error = string.Format("---\nThe following error occurred while executing the snippet:\n{0}\n---", e.ToString());
                Console.WriteLine(error);
            }
            finally
            {
                Console.Write("Press any key to continue...");
                Console.ReadKey();
            }
        }
     
        private static void WL(object text, params object[] args)
        {
            Console.WriteLine(text.ToString(), args);    
        }
        
        private static void RL()
        {
            Console.ReadLine();    
        }
        
        private static void Break() 
        {
            System.Diagnostics.Debugger.Break();
        }
     
        #endregion
    }
    作者:KKcat
        
    个人博客:http://jinzhao.me/
        
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    笔记:国际化
    【推荐系统】知乎live入门3.召回
    【推荐系统】知乎live入门2.细节补充
    【推荐系统】知乎live入门1.推荐概览与框架
    【推荐系统】知乎live入门
    【学习总结】SQL学习总结-总
    【问题解决方案】git clone失败的分析和解决
    【问题解决方案】GitHub上克隆项目到本地
    【JAVA】eclipse里代码整个前移或者后移的快捷键
    【JAVA】Java 异常中e的getMessage()和toString()方法的异同
  • 原文地址:https://www.cnblogs.com/jinzhao/p/1343446.html
Copyright © 2011-2022 走看看