优化的C#代码。想要使用没有嵌套循环的更好的技术

时间:2015-10-15 15:37:49

标签: c# performance linq loops

我在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分钟。

1 个答案:

答案 0 :(得分:6)

使用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,
    };