You can easily do that with LINQ, like so:
static IList<int> GetPage(IList<int> list, int pageNumber, int pageSize = 10)
{
return list.Skip((pageNumber - 1) * pageSize).Take(pageSize).ToList();
}
static void Main()
{
IList<int> list = Enumerable.Range(1, 100).ToList();
Console.WriteLine(String.Join(", ", GetPage(list, 1, 10)));
Console.WriteLine(String.Join(", ", GetPage(list, 2, 10)));
}
However, this does require you to have the whole collection in memory. If that's no problem, this is the way to go.
-edit-
*grumbles something about pasting on CP*