在 C# 中将 DataRowView[] 绑定到 DataGridView 的最有效方法

Most efficient way to bind DataRowView[] to DataGridView in C#

我在 DataTable 上有一个 DataView(带有排序列,没有 RowFilter)。当我调用 DataView.FindRows(SortCols[]) 时 returns DataRowView[].

将此数组绑定到 DataGridView 的最有效方法(就速度而言)是什么?

我的 google 搜索只返回了几个相关结果,他们似乎建议遍历数组并将数据添加到新的 DataTable,然后可以绑定它。

我希望我的 DataRowView[] 至少包含几百个项目,所以除非没有更好的方法,否则我不想采用迭代方式。

如有任何建议,我们将不胜感激。非常感谢。

经过反复试验,我最终得出了这个解决方案。我确实遍历数组,但可以避免对列进行二级迭代:

DataRowView[] drvFiltered = NFM.dtvFilterRothAppMsgs.FindRows(new string[] { sSenderCompId, sTargetCompId });

//-- Current solution
DataRow dr;
foreach (DataRowView drv in drvFiltered) {
    dr = dtbFilteredAppMsgs.NewRow();
    dr.ItemArray = drv.Row.ItemArray;
    dtbFilteredAppMsgs.Rows.Add(dr);
}
dtbFilteredAppMsgs.AcceptChanges();

目前有效。如果有人知道更直接的方法,请告诉我。非常感谢。