Linq實(shí)現(xiàn)分頁簡單描述
學(xué)習(xí)LINQ時,經(jīng)常會遇到分頁問題,這里將介紹用Linq實(shí)現(xiàn)分頁來解決分頁問題。
LINQ是Language Integrated Query (語言集成查詢)。當(dāng)我們要對數(shù)據(jù)庫表進(jìn)行查詢的時候,我們一定會編寫"select * from sometable where 的語句。好,那我們現(xiàn)在根據(jù)LINQ的語法,完全可以將我們熟悉的SQL中像"select","from","where"等語句在.NET Framework環(huán)境中順利使用并且大大提高開發(fā)的效率。
以下是模擬分頁的Linq方法! 用Linq實(shí)現(xiàn)分頁,有個實(shí)現(xiàn)IEnumerable接口的數(shù)組。
- string[] Array = { "Hjiang", "Hwang", "Wange", "Hwan", "Hcheng", "Hhoho" };
封裝分頁的方法
- /// <summary>
- /// 分頁
- /// < SPAN>summary>
- /// <typeparam name="T">< SPAN>typeparam>
- /// <param name="List">實(shí)現(xiàn)IEnumerable< SPAN>param>
- /// <param name="FunWhere">delegate檢索條件< SPAN>param>
- /// <param name="FunOrder">delegate排序< SPAN>param>
- /// <param name="PageSize">每頁顯示數(shù)< SPAN>param>
- /// <param name="PageIndex">當(dāng)前頁碼< SPAN>param>
- /// <returns>< SPAN>returns>
- static IEnumerable<T> GetIenumberable<T>(IEnumerable<T> List,Func<T,
bool> FunWhere,Func<T,string> FunOrder, int PageSize, int PageIndex)- {
- var rance = List.Where(FunWhere).OrderByDescending(FunOrder).
Select(t => t).Skip((PageIndex - 1) * PageSize).Take(PageSize);- return rance;
- }
然后我們對數(shù)組進(jìn)行模擬分頁
以下讀取第一頁
- var sArray = GetIenumberable<String>
(Array, r => r.StartsWith("H"), r => r, 1, 1);- foreach (var s in sArray)
- {
- Console.WriteLine(s);
- }
第二頁
- var sArray = GetIenumberable<String>
(Array, r => r.StartsWith("H"), r => r, 1, 2);- foreach (var s in sArray)
- {
- Console.WriteLine(s);
- }
以上介紹用Linq實(shí)現(xiàn)分頁。
【編輯推薦】