Inplace Datatable修改而不是使用“Defaultview.ToTable”

时间:2014-06-26 10:32:41

标签: c# performance datatable

我正在开发一种算法,它非常方便地使用数据表来实现它。

作为算法的一部分,我继续使用以下列的第一列对数据表进行排序:

dt.DefaultView.Sort = dt.Columns[0].ColumnName + " ASC";
dt = dt.DefaultView.ToTable(); // This is the Evil line

问题是,dt.DefaultView.ToTable();似乎是一个相对繁重的操作内存和时间方面(占用算法时间的近60%!),很快这个算法就必须处理大量的数据

enter image description here

我知道我可以手动排序,但我不想重新发明轮子......

那么,是否有人知道如何在不重新分配完整表格的情况下完成工作,而无需重新发明轮子?


更完整的代码示例:

var dt = new DataTable();
/*Populating dt...*/
for (int i = 0; i < input.Length; i++)
{
    /*Some more code here that includes modifying first column*/

    dt.DefaultView.Sort = dt.Columns[0].ColumnName + " ASC";
    dt = dt.DefaultView.ToTable();
}

0 个答案:

没有答案