Linq Day2 - 分頁

  • 437
  • 0

此篇簡單介紹 Linq如何實作分頁。

參考網站 : 

http://ithelp.ithome.com.tw/users/20009278/ironman/450

https://dotblogs.com.tw/hatelove/series/1?qq=%E5%BF%AB%E5%BF%AB%E6%A8%82%E6%A8%82%E5%AD%B8LINQ%E7%B3%BB%E5%88%97


 

資料模型 : 參考 Linq Day1 - 查詢與排序 的資料模型

 

Linq分頁範例

using System;
using System.Collections.Generic;
using System.Linq;
using LinqDay1;

namespace LinqDay2
{
    // 這裡主要示範分頁 或者取得一定範圍內的資料
    class Program
    {
        static void Main(string[] args)
        {
            var Program = new Program();
            var order = Program.GetOrder();
            // 使用分頁
            Program.SetPageRow(order,2,10);
            Console.ReadLine();
        }

        // 引數 pageCnt = 第幾頁  pageRows = 一頁幾筆
        private void SetPageRow(List<Model1.Order> ob, int pageCnt, int pageRows)
        {
            //Skip() 可用來跳過來源序列中的前幾個項目,再把剩下的資料全部回傳
            //Take() 可用來取出來源序列中,指定數量項目的資料
            var query = ob.Skip((pageCnt-1) * pageRows).Take(pageRows);

            Console.WriteLine("實作分頁---------------------------------");
            Console.WriteLine("第 " + pageCnt + " 頁,共 " + pageRows + " 筆 ");
            var i = 1;
            query.ToList().ForEach(x => {
                Console.WriteLine("頁碼 " + pageCnt + "-" + i +", "+ x.ToString());
                i += 1;
            });
        }

        private List<Model1.Order> GetOrder()
        {
            var result = new List<Model1.Order>();

            for (int j = 1; j < 101; j++)
            {
                result.Add(new Model1.Order {
                    CustomerId = j,
                    OrderDate = new DateTime(2000 + j, 10, 9),
                    Total = 2900 + j
                });
            }

            Console.WriteLine("原始------------------資料");
            var i = 1;
            result.ForEach(x => {
                Console.WriteLine("第" + i.ToString() + "筆 " + x.ToString());
                i += 1;
            });
            Console.WriteLine("原始--------------------資料");
            Console.WriteLine();
            return result;
        }
    }
}

 


多多指教!! 歡迎交流!!

你不知道自己不知道,那你會以為你知道