我在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,
    };

08-29 01:12