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/
        
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    科普下病菌和病毒
    centos环境下安装docker
    change master to到一个不存在的主库或主库无法连接
    java.lang.outofmemoryerror android
    委托 C#
    将PC端的网站转化成手机端网站需要增加以下这段代码即可,再布局一下界面即可
    combobox联动
    删除dataGridview中选中的一行或多行
    vs2010下如何使【“System.Data.OracleClient.OracleConnection”已过时】 解决办法
    MyEclipse连接SQL Server 2008数据库的操作方法
  • 原文地址:https://www.cnblogs.com/jinzhao/p/1343446.html
Copyright © 2011-2022 走看看