AsEnumerable()。取

时间:2012-11-29 08:51:00

标签: c# linq datatable linq-to-dataset

我想从数据表中获取n个记录。

我不想运行我已经知道的循环。

我正在尝试这样做

DataTable dt = dtResult.AsEnumerable().Take(n)

是正确的方法..?

使这个“n条记录”在另一个数据表中的过程是什么??

3 个答案:

答案 0 :(得分:3)

是的,这是从数据表中获取前N行的正确方法。使用CopyToDataTable扩展名从查询结果中创建新数据表:

DataTable dt = dtResult.AsEnumerable()
                       .Take(n)
                       .CopyToDataTable();

答案 1 :(得分:2)

lazyberezovsky的回答是正确的,但是如果你想做一些比AsQueryable AsEnumerable更奇特的东西,你可能想要使用Take而不是IQueryable。{{1接口使您可以更自由地针对尚未在内存中收集的集合编写表达式。我会说IQueryableIEnumerable更适合与数据库进行交互。更多信息:What is the difference between IQueryable and IEnumerable?

DataTable dt = dtResult.AsQueryable()
                       .Take(n)
                       .CopyToDataTable();

答案 2 :(得分:0)

试试这个.CopyToDataTable()。 E.g。

DataTable dt = dtResult.AsEnumerable().Take(5).CopyToDataTable();