I have a list of strings list and a number pageSize, a pageNumber and a rowNumber. I want to split this list by the page size and create a list of list, then return the element at the given pageNumber and rowNumber. If the page number and row number is above the possible index level, return null. Both pageNumber and rowNumber are zero-based indexes.
Example:
list = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
pageSize = 3
pageNumber = 2
rowNumber = 1
Result:List = [ [1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
Result = 8.
But this code is throwing an OutOfRange exception:
public static int? GetItemInThePagedDataList(IEnumerable<int> list, int pageSize, int pageNumber, int rowNumber)
{
var lists = list.Chop(pageSize);
if (pageNumber >= lists.Count() || rowNumber >= lists.First().Count())
{
throw new ArgumentOutOfRangeException();
}
return lists.ElementAt(pageNumber).ElementAt(rowNumber);
}