有没有一种方法可以使用元组类型进行双重foreach?

时间:2020-07-07 13:47:12

标签: c# linq foreach

例如,假设您有两个对象数量相似的列表。有没有一种方法可以同时使用list1中的1个变量和list 2中的1个变量(具有或不具有元组类型)来进行foreach? (而不是foreach中的foreach)

例如,我们有list1和list2。这就是我的想象(不一定正确)。

    foreach( var (x,y) from (list1, list2))
    {

    }

1 个答案:

答案 0 :(得分:2)

是的,有。请查看this文档。

此实现方式为:

foreach ( var ( x, y ) in listA.Zip( listB, ( a, b ) => ( a, b ) ) ) {
    ...
}

请注意,这不是不是“ 2D”循环,它仅对每个值执行一次。 如果要进行“ 2D”循环,则需要使用2个循环,或者实现一个无论如何都要使用2个循环的扩展方法。