您好我需要迭代两个包含不同对象类型的集合并进行一些匹配,将匹配的项目添加到第三个列表。
private CheesyMatch( BindingList< MyTypeA > theListA, BindingList< MyTypeB > theListB )
{
foreach( MyTypeA item in theListA )
{
foreach( MyTypeB item2 in theListB )
{
if( item.name == item2.name )
{
item.matched = true;
item2.matched = true;
MyMatchedList.items.add( new matchedItem( item, item2 ) );
}
}
}
}
有更好/更有效的方法吗? (我简化了一些事情,因为我在代码中有一些代码在迭代之前复制到新的本地集合,因为我遇到了线程问题。
答案 0 :(得分:0)
不确定这是什么语言,但必须有一些方法喜欢“存在”或“包含”,你可以在其中进行两个循环。在伪代码中
foreach item in ListA
if ListB.exists(item) then
MatchedList.items.add(item)
end if
endfor
foreach item in ListB
if ListA.exists(item) then
MatchedList.items.add(item)
end if
endfor
这样你只需要遍历每个集合一次而不是ListB N次,其中ListA有N个项目。这有意义吗?