我有两个列表。一个带有新对象,我们称之为 NewCol,另一个是我从数据库中读取的(我们称之为 CurrentCol)。CurrentCol 大约有 120 万行(并且会每天增长),而 NewCol 可以是任何东西,一次可以是 1 到数千行。任何人都可以帮我改进以下代码,因为它运行得太慢了:
foreach (PortedNumberCollection element in NewCol)
{
if (CurrentCol.AsParallel().Select(x => x.MSISDN).Contains(element.MSISDN))
{
CurrentCol.AsParallel().Where(y => y.MSISDN == element.MSISDN)
.Select
(x =>
{
//if the MSISDN exists in both the old and new collection
// then update the old collection
x.RouteAction = element.RouteAction;
x.RoutingLabel = element.RoutingLabel;
return x;
}
);
}
else
{
//The item does not exist in the old collection so add it
CurrentCol.Add(element);
}
}