我有一个非常慢的方法,我不确定如何优化此方法。我也不太了解LINQ的工作原理,因此,如果解决方案是使用LINQ,请解释一下。非常感谢。
该dtExcel方法的参数中的DataTable包含第一部分数据,另一部分_dt来自数据库。通过两个for循环运行的数据大约如下:700(dtExcel)* 10,000(_dt)= 7,000,000个比较。
这里的代码:
public async Task<DataTable> GetAdressesFromDB(DataTable dtExcel)
{
try
{
return await Task.Run(() =>
{
CurrentProgress = 0;
ProgressbarDBVisible = true;
_dtFoundDuplicates.Clear();
_dt = new DataTable();
_dt = DBConn.GetAllAddresses(dtExcel);
ProgressMaximum = dtExcel.Rows.Count;
for (int i = 0; i < dtExcel.Rows.Count; i++)
{
CurrentProgress++;
for (int y = 0; y < _dt.Rows.Count; y++)
{
// Criteria to check duplicates
string compareAdressExcel = "";
string compareAdressDB = "";
// Get the setted filter criteria and create both excel and db compare strings
string[] criteriaFields = ConfigurationManager.AppSettings["strFilter"].Split(',');
foreach (String cField in criteriaFields)
郎朗坤
相关分类