在下面的代码中,我使用了 2 种方法(其中 1 种被注释)。
protected DataRow[] GetRows(DataTable dataTable, string keyColumn, object KeyValue)
{
DataRow[] rows = null;
/*dataTable.DefaultView.RowFilter = "[" + keyColumn + "] Like '%" + keyValue.ToString() + "%'";
dataTable = dataTable.DefaultView.ToTable();
rows = dataTable.Select();*/
rows = dataTable.Select("[" + keyColumn + "] Like '%" + keyValue.ToString() + "%'");
return rows;
}
有没有更快的方法来完成同样的任务?这个方法 GetRows 被调用了大约一千次;dataTable 有 100 000 行。
实际的 BusinessLogic 看起来像
public void BusinessLogic()
{
foreach (DataRow dRow in dataTableOne.Rows)
{
var primaryKey = dRow["PrimaryColumn"];
DataRow[] rows;
rows = GetRows(dataTableTwo,"PrimaryColumn" , primaryKey);
/*
Business Logic
*/
}
}