是否可以为每个加入两个列表执行a并浏览新的" duo列表" ? 类似的东西:
$test = $array_store->return[0]->entries[1]->value;
echo $test;
列表长度相同。
答案 0 :(得分:4)
您可以通过索引加入LINQ的Enumerable.Zip
并创建一个匿名类型:
Dim zipped = list1.Zip(list2, Function(obj1, obj2) New With {Key obj1, Key obj2})
For Each pair In zipped
Console.WriteLine(pair.obj1)
Console.WriteLine(pair.obj2)
Next
请注意,zipped
不是集合,而是查询。每当您枚举它时(例如For Each
,First
,ToList
等),您将再次执行此查询。如果您需要保留它,则可以创建列表或数组(ToList
/ ToArray
)并改为访问它。
许多LINQ方法的惰性求值称为Deferred Execution。
答案 1 :(得分:1)
如果您想要枚举单个组合列表,那么您可以这样做:
For Each item In list1.Concat(list2)
'Use item here.
Next
如果您实际意味着您想要同时访问同一索引中两个列表中的项目,那么For Each
循环将如何理解?在这种情况下,您将使用For
循环并按索引获取这两个项目:
For i = 0 To list1.Count - 1
Dim item1 = list1(i)
Dim item2 = list2(i)
'Use item1 and item2 here.
Next
考虑其他答案中使用的Zip
方法,并将其与我的Tuple
建议相结合:
For Each tpl In list1.Zip(list2, Function(a, b) AddressOf Tuple.Create)
Console.WriteLine(tpl.Item1)
Console.WriteLine(tpl.Item2)
Next