假设我有以下循环:
foreach (DataRow dr in table.rows)
{
...
}
Run Code Online (Sandbox Code Playgroud)
如何让它比n次运行更频繁?
Jon*_*eet 19
如果rows实际上只是来自DataTable.Rows,Take给出的简单答案将不起作用,因为DataRowCollection只实现非泛型IEnumerable接口,而LINQ需要通用接口.你需要这样的东西:
// Uses DataTableExtensions.AsEnumerable
foreach (DataRow dr in table.AsEnumerable().Take(50))
Run Code Online (Sandbox Code Playgroud)
要么
// Uses Enumerable.Cast
foreach (DataRow dr in rows.Cast<DataRow>().Take(50))
Run Code Online (Sandbox Code Playgroud)
Ada*_*lph 10
你可以试试
using System.Linq;
...
...
...
foreach (DataRow dr in rows.Cast<DataRow>().Take(50)) { }
Run Code Online (Sandbox Code Playgroud)
请注意,您必须调用Cast<DataRow>()才能转换DataRowCollection为IEnumerable<DataRow>,这将允许您使用Take()扩展方法.