我在C#中有一些代码,在C#中不是很好,因此在循环中使用了循环,但是它们花费的时间太长。有什么方法可以编写代码以实现快速执行,从而节省时间并保持准确性?
这是代码。
foreach (var vmain in vendorMainResult)
{
foreach (var povendor in potoDateOrders)
{
if (vmain.VendorNumber == povendor.VendorNumber && vmain.Year == povendor.Year)
{
vmain.ToDateOrders = povendor.ToDateOrders;
vmain.OutstandingComm = povendor.OutstandingComm;
break;
}
}
}
考虑一下每个集合中是否有20,000条记录,那么20k x 20k需要1-2分钟。
最佳答案
使用Join
将两个集合有效地连接在一起。
var query = from vmain in vendorMainResult
join povender in potoDateOrders
on new
{
vmain.VendorNumber,
vmain.Year,
}
equals new
{
povendor.VendorNumber,
povendor.Year,
}
select new
{
vmain,
povendor,
};