コガネブログ

平日更新を目標にUnityやC#、Visual Studioなどのゲーム開発アレコレを書いていきます

【C#】配列やリストの中から指定した範囲の要素を抜き出す

ソースコード

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

public static class IEnumerableExtensions
{       
    /// <summary>
    /// シーケンスの中から指定した範囲の要素を抜き出す
    /// </summary>
    /// <param name="pageNumber">現在のページ番号</param>
    /// <param name="countPerPage">1 ページあたりに表示する項目の数</param>
    public static IEnumerable<T> Paging<T>( 
        this IEnumerable<T> self, 
        int pageNumber, 
        int countPerPage )
    {
        return self
            .Skip( countPerPage * pageNumber )
            .Take( countPerPage );
    }
}

使い方

var array = new int[ 100 ];
for ( int i = 0; i < 100; i++ )
{
    array[ i ] = i;
}

// 0,1,2,3,4,5,6,7,8,9
array.Paging( 0, 10 );

// 50,51,52,53,54,55,56,57,58,59
array.Paging( 5, 10 );