好吧,这可能是个愚蠢的问题,但我似乎无法弄明白。我想我会针对 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(...) 处遇到错误。
Error 1 'System.Data.OrderedEnumerableRowCollection' does not contain a definition for 'Skip' and no extension method 'Skip' accepting a first argument of type 'System.Data.OrderedEnumerableRowCollection' could be found (are you missing a using directive or an assembly reference?)
我的引用资料:
- Microsoft.SharePoint
- 系统
- 系统核心
- 系统数据
- System.Data.DataSetExtensions
- 系统.Web
- 系统.xml
我错过了什么?
最佳答案
您需要在文件顶部使用 using System.Linq;
。
第二个问题是您需要将 Skip 和 Take 的结果分配给某些东西,否则结果将被简单地丢弃:
var query2 = query.Skip(WPP_PAGE_SIZE * pageIndex).Take(WPP_PAGE_SIZE);
关于c# - LINQ 和使用 DataTable 进行分页 - 无法让 Skip 工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3055866/