Linq實(shí)現(xiàn)分頁(yè)簡(jiǎn)單描述
學(xué)習(xí)LINQ時(shí),經(jīng)常會(huì)遇到分頁(yè)問(wèn)題,這里將介紹用Linq實(shí)現(xiàn)分頁(yè)來(lái)解決分頁(yè)問(wèn)題。
LINQ是Language Integrated Query (語(yǔ)言集成查詢(xún))。當(dāng)我們要對(duì)數(shù)據(jù)庫(kù)表進(jìn)行查詢(xún)的時(shí)候,我們一定會(huì)編寫(xiě)"select * from sometable where 的語(yǔ)句。好,那我們現(xiàn)在根據(jù)LINQ的語(yǔ)法,完全可以將我們熟悉的SQL中像"select","from","where"等語(yǔ)句在.NET Framework環(huán)境中順利使用并且大大提高開(kāi)發(fā)的效率。
以下是模擬分頁(yè)的Linq方法! 用Linq實(shí)現(xiàn)分頁(yè),有個(gè)實(shí)現(xiàn)IEnumerable接口的數(shù)組。
- string[] Array = { "Hjiang", "Hwang", "Wange", "Hwan", "Hcheng", "Hhoho" };
封裝分頁(yè)的方法
- /// <summary>
- /// 分頁(yè)
- /// < 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">每頁(yè)顯示數(shù)< SPAN>param>
- /// <param name="PageIndex">當(dāng)前頁(yè)碼< 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;
- }
然后我們對(duì)數(shù)組進(jìn)行模擬分頁(yè)
以下讀取第一頁(yè)
- var sArray = GetIenumberable<String>
(Array, r => r.StartsWith("H"), r => r, 1, 1);- foreach (var s in sArray)
- {
- Console.WriteLine(s);
- }
第二頁(yè)
- 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)分頁(yè)。
【編輯推薦】