如何同时循环遍历两个列表?

Cod*_*les 1 vb.net foreach list

我在以下位置提到了以下问题:Using foreach loop to iterate through two lists。关于选择的答案,我的问题是: o.DoSomething 可以比较吗?如:

For Each a in ListA.Concat(ListB)
    If(a from ListA=a from ListB) Then
        Do Something here
    End If
Next
Run Code Online (Sandbox Code Playgroud)

正如您可能已经猜到的那样,我正在使用 VB.Net 并且想知道如何完成我在此处展示的内容。这基本上是单独/独立地遍历连接列表。谢谢!

Ant*_*ram 5

您的问题表明您需要一个Join操作,因为这不是您想遍历两个列表,而是您还想将一个列表中的类似项目匹配到另一个列表。

    Dim joinedLists = From item1 In list1 _
                    Join item2 In list2 _
                    On item1.Bar Equals item2.Bar _
                    Select New With {item1, item2}

    For Each pair In joinedLists
        'Do work on combined item here'
        'pair.item1'
        'pair.item2'
    Next
Run Code Online (Sandbox Code Playgroud)

其他答案推荐Zip。这只是一个函数,它接受两个序列并产生一个结果,很像 join,但它适合在两个列表的 FIFO 方法中工作。如果您需要基于平等建立联系,这Join是专为这项工作而打造的正确工具。