C# 演習

C#のSkipとTakeでデータをページ分けする

このレッスンでは、LINQのSkipとTakeを使って、リストの中の特定のページのデータを取り出します。

はじめに

データが多いとき、アプリは1ページに10件の商品というように、ページごとに表示するのが一般的です。LINQには、先頭のいくつかの要素を飛ばすSkipと、その次のいくつかの要素を取るTakeの2つのメソッドがあり、組み合わせるとページ分けができます。

ページ番号が1から始まる場合、飛ばす要素の数は(page - 1) * sizeです。1ページ3件の2ページ目では、プログラムは最初の3つを飛ばして次の3つ、4、5、6を取ります。実際には、ページの並び順が常に安定するように、ページ分けの前にデータを並べ替えておきましょう。

実行できる C# の例

C#
コードを実行 →
Program.cs
using System;
using System.Linq;
class Program
{
    static void Main()
    {
        int page = 2, size = 3;
        var items = Enumerable.Range(1, 10).Skip((page - 1) * size).Take(size);
        Console.WriteLine(string.Join(", ", items));
    }
}
実行結果
4, 5, 6

デバッガーで練習する

大事な代入や条件にブレークポイントを置いて Debug を押し、次の行に進む前にローカル変数の値を確かめましょう。

チャレンジで練習する

このレッスンの内容を使って実際の問題を解きましょう。各チャレンジはブラウザで動き、すぐにテストされ、AI のレビューも受けられます。

すべてのチャレンジ