有什么方法可以将LINQ表达式的结果转换为DataTable,而无需单步执行每个元素?

最佳答案

不,没有逐步浏览每个元素的方法就无法创建它。 Linq表达式在需要时进行评估,因此它将逐步遍历每一行(用于匹配和选择)。

我认为您应该尝试使用DataTable.Select()MSDN link)方法代替,因为它返回的DataRow对象数组可以按如下方式添加到新表中:

var rows = [ORIGINAL DATA TABLE].Select("id>5");

var dtb=[ORIGINAL DATA TABLE].Clone();

foreach(DataRow r in rows)
{
    var newRow = dtb.NewRow();
    newRow.ItemArray = r.ItemArray;
    dtb.Rows.Add(newRow);//I'm doubtful if you need to call this or not
}

09-27 20:53