我從另一個列表中添加數據列表的對象:合併兩個不同類型的列表
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