我从另一个列表中添加数据列表的对象:合并两个不同类型的列表
public void MergeLsts(List<A> lstA, List<B> lstB)
{
foreach (A dataA in lstA)
{
foreach (B dataB in lstB)
{
if (dataA.ItemNo == dataB.ItemNo)
{
//dataA.ItemDescription is up to this point empty!
dataA.ItemDescription = dataB.ItemDescription;
}
}
}
DoSomethingWithTheNewLst(lstA);
}
这工作完全正常。然而这需要相当长的时间,因为这两个列表变得非常大(lstA中的约7万个项目和lstB中的约20k个项目)。
我想知道是否有更快或更有效的方法来完成我所需要的?也许与LINQ?
如果收藏品的长度相同,您可以使用.Zip() –
我假设您可以订购ItemNo中的数据。如果您想手动执行此操作(不使用某些库函数),则可以这样做:按ItemNo对两个列表进行排序,以类似于合并排序中的合并步骤的方式添加数据。这应该在nlogn中工作。 – Aziuth