使用DataTable进行LINQ和分页 - 无法使Skip工作?

时间:2010-06-16 17:54:50

标签: c# linq datatable

好的,这可能是一个愚蠢的问题,但我似乎无法弄明白。我以为我会针对DataTable尝试LINQ。我的查询工作正常,现在我正在尝试实现一些简单的分页。

DataTable dataTable = null;

dataTable = GetAllDataTables();

var query = from r in dataTable.AsEnumerable()
            orderby r.Field<string>(Constants.fileName)
            select r;

query.Skip(WPP_PAGE_SIZE * pageIndex).Take(WPP_PAGE_SIZE);

我的问题是我在query.Skip(...)时遇到错误。

  

错误1'System.Data.OrderedEnumerableRowCollection'   不包含的定义   '跳过',没有扩展方法'跳过'   接受第一个类型的参数   'System.Data.OrderedEnumerableRowCollection'   可以找到(你错过了吗?   使用指令或程序集   引用?)

我有参考资料:

  • Microsoft.SharePoint程序
  • 系统
  • System.Core程序
  • System.Data
  • System.Data.DataSetExtensions
  • 的System.Web
  • 的System.Xml

我错过了什么?

2 个答案:

答案 0 :(得分:7)

您的文件顶部需要using System.Linq;

第二个问题是你需要将Skip和Take的结果分配给某些东西,否则结果就会被丢弃:

var query2 = query.Skip(WPP_PAGE_SIZE * pageIndex).Take(WPP_PAGE_SIZE);

答案 1 :(得分:2)

using System.Linq?