[C#] .NET 6 - Enumerable.Chunk 寫分頁資料的新好幫手
今天來寫一個不算新但是很好用的東西 LINQ - Chunk , 這是 .NET 6 之後才有的
這東西很快只要一行就解決我每次都很不想寫的東西,就是分頁
以前寫分頁都要這樣下 LINQ AllData.Skip((page-1)*perPageDataCount).Take(perPageDataCount)
現在只要一行解決
本文案例 模擬塞入52 筆資料,透過 Chunk 得知可以分成幾頁,然後每一頁的資料為何
我每一頁希望10筆資料,所以理論上會有 6頁 ,最後一頁是只顯示兩筆資料
其實,因為很簡單看一下程式碼立即可以懂直接獻上程式碼,因為我剛好手上專案是寫 ASP.NET 不是用 Console 起見諒我的換行換得很醜
Result:
頁面總數:6
第1頁
Id52,Name:用戶52
Id51,Name:用戶51
Id50,Name:用戶50
Id49,Name:用戶49
Id48,Name:用戶48
Id47,Name:用戶47
Id46,Name:用戶46
Id45,Name:用戶45
Id44,Name:用戶44
Id43,Name:用戶43
==
第2頁
Id42,Name:用戶42
Id41,Name:用戶41
Id40,Name:用戶40
Id39,Name:用戶39
Id38,Name:用戶38
Id37,Name:用戶37
Id36,Name:用戶36
Id35,Name:用戶35
Id34,Name:用戶34
Id33,Name:用戶33
==
第3頁
Id32,Name:用戶32
Id31,Name:用戶31
Id30,Name:用戶30
Id29,Name:用戶29
Id28,Name:用戶28
Id27,Name:用戶27
Id26,Name:用戶26
Id25,Name:用戶25
Id24,Name:用戶24
Id23,Name:用戶23
==
第4頁
Id22,Name:用戶22
Id21,Name:用戶21
Id20,Name:用戶20
Id19,Name:用戶19
Id18,Name:用戶18
Id17,Name:用戶17
Id16,Name:用戶16
Id15,Name:用戶15
Id14,Name:用戶14
Id13,Name:用戶13
==
第5頁
Id12,Name:用戶12
Id11,Name:用戶11
Id10,Name:用戶10
Id9,Name:用戶9
Id8,Name:用戶8
Id7,Name:用戶7
Id6,Name:用戶6
Id5,Name:用戶5
Id4,Name:用戶4
Id3,Name:用戶3
==
第6頁
Id2,Name:用戶2
Id1,Name:用戶1
==
補述
如果你只是要抓第二頁的資料那就是取第二區塊 配合 ElementAt 使用
Result:
頁面總數:6
Id42,Name:用戶42
Id41,Name:用戶41
Id40,Name:用戶40
Id39,Name:用戶39
Id38,Name:用戶38
Id37,Name:用戶37
Id36,Name:用戶36
Id35,Name:用戶35
Id34,Name:用戶34
Id33,Name:用戶33
是不是變得超簡單
reference:
https://learn.microsoft.com/en-us/dotnet/api/system.linq.enumerable.chunk?view=net-6.0