逐页获取Post对象

时间:2011-08-24 14:31:06

标签: c# linq extension-methods

我试图在每页上获得一定数量的Post对象(比如10),然后我尝试使用扩展方法

  int _start = _page * _listItemsPerPage;
  int _end = (_page + 1) * _listItemsPerPage;

  if (Posts.Count > _end)
       return  (Posts.Skip(_start).Take(_end - _start)) as List<Post>;
  else
       return  (Posts.Skip(_start).Take(Posts.Count - _start)) as List<Post>;

但是我做错了,因为它总是返回null。 有条件的信息:

  • 帖子是列表&lt;发布&gt;类型,dummie数据的收集
  • _page - 页码
  • _listItemsPerPage - 需要显示的项目数
  • _start - 起始索引
  • _end - 结束索引
  • 我已完成先前的异常检查

1 个答案:

答案 0 :(得分:1)

对Skip和Take的调用返回IEnumerable<Post>而不是List<Post>,因此转换为List<Post> as List<Post>失败并返回null。

添加对AsList()的通话,或只返回IEnumerable<Post>