7
A
回答
9
你可以尝试
using System.Linq;
...
...
...
foreach (DataRow dr in rows.Cast<DataRow>().Take(50)) { }
请注意,你必须调用Cast<DataRow>()
以DataRowCollection
转换为IEnumerable<DataRow>
,这将允许您使用Take()
扩展方法。
+0
你有没有试过这段代码? DataRowCollection没有直接可用的'Take'方法。 –
+0
@詹姆斯 - 见编辑;-) –
3
选项1:有一个正在运行计数器:
var i = 0;
foreach (DataRow dr in rows)
{
i++;
if(i >= 50) break;
}
选项2:使用一个for循环
for(int i = 0; i <= 50; i++) {
// This might actually crash if there are fewer than 50 rows
var row = rows[i];
}
3
理想的情况下,修改原始查询只返回50行。获取超过您想要使用的内容毫无意义。
如果这不是一个选项,其他人已经提供了很好的选择。
18
如果rows
实际上是刚刚从DataTable.Rows
,给予不作为DataRowCollection
工作简单Take
答案只有实现了非通用IEnumerable
接口,而LINQ需要通用之一。你会需要这样的东西:
// Uses DataTableExtensions.AsEnumerable
foreach (DataRow dr in table.AsEnumerable().Take(50))
或
// Uses Enumerable.Cast
foreach (DataRow dr in rows.Cast<DataRow>().Take(50))
1
试试这个:
foreach (DataRow dr in table.Rows.Cast<DataRow>().Take(50))
{
//your logic
}
0
的.Cast<DataRow>().Take(50)
Linq的做法都很好,但是这确实是一个for
循环一个简单的问题:
for(int i = 0; i < Math.Min(50, rows.Count); ++i)
{
var row = rows[i];
}
相关问题
- 1. foreach循环运行一次
- 2. 如何将foreach循环限制为四个循环
- 3. PHP - foreach循环只运行一个
- 4. 如何foreach循环限制在三个环路
- 5. 在foreach循环运行的for循环
- 6. 无法运行foreach循环
- 7. 如何控制这个foreach循环
- 8. PHP - 每行限制3个项目的Foreach循环
- 9. 运行,如果条件而PHP的foreach循环内无限=
- 10. 动态foreach循环限制php
- 11. 在foreach循环中限制PHP项目
- 12. KnockoutJS foreach循环来限制第一个数组
- 13. foreach循环里面for循环只运行一次
- 14. 一个循环运行在php的限制次数
- 15. 运行两个无限并行循环
- 16. 如何创建一个foreach循环?
- 17. 如何在foreach循环中运行多个函数
- 18. asp.net - 无限循环foreach
- 19. 运行无限循环的两个类
- 20. 如何设置foreach循环的任意限制?
- 21. CodeIgniter继续运行一个foreach循环后
- 22. 在foreach循环中运行h2o算法?
- 23. Foreach循环将无法运行
- 24. 多行foreach循环
- 25. 将foreach循环中的表限制为5行
- 26. 嵌套的foreach循环,第一个循环不循环
- 27. 限制每个做循环
- 28. 如何让foreach循环DevExpress.Web.ASPxGridView.ASPxGridView行元素
- 29. 如何在一个无限循环
- 30. 如何让两个C同时运行无限循环?
For a new progra mmer,请务必查看循环中显式计数器的答案,即使您最终选择了“Take(50)”方法之一。 –
@AnthonyPegram:对于正在学习的人有很好的建议。 –