This does what I want:
if (order == SortOrder.Ascending) {
return list.Values.Skip(pageIndex * numberPerPage).Take(numberPerPage);
} else if (order == SortOrder.Descending) {
return list.Values.Reverse().Skip(pageIndex * numberPerPage).Take(numberPerPage);
}
However, I don't want to have to reverse the list every time this is called, I could write a for loop that goes through the list backwards and implement the paging myself, but im looking for a simple way to get this done with linq.