Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 对于双倍列表中的每个_Vb.net_List_For Loop_Razor - Fatal编程技术网

Vb.net 对于双倍列表中的每个

Vb.net 对于双倍列表中的每个,vb.net,list,for-loop,razor,Vb.net,List,For Loop,Razor,是否有可能为两个列表中的每一个做一次搜索,并浏览新的“duo列表”? 比如: For Each elm In list1 Join list2 elm.obj1 // objet with list1 type elm.obj2 // object with list2 type next elm 列表具有相同的长度。如果您的意思是要枚举单个组合列表,则可以执行以下操作: For Each item In list1.Concat(list2) 'Use item

是否有可能为两个列表中的每一个做一次搜索,并浏览新的“duo列表”? 比如:

For Each elm In list1 Join list2
     elm.obj1 // objet with list1 type
     elm.obj2 // object with list2 type
next elm

列表具有相同的长度。

如果您的意思是要枚举单个组合列表,则可以执行以下操作:

For Each item In list1.Concat(list2)
    'Use item here.
Next
如果您实际的意思是希望在同一时间访问两个列表中相同索引的项,那么为每个循环创建一个
,又有什么意义呢?在这种情况下,您将使用
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

如果您的意思是要枚举单个组合列表,则可以执行以下操作:

For Each item In list1.Concat(list2)
    'Use item here.
Next
如果您实际的意思是希望在同一时间访问两个列表中相同索引的项,那么为每个
循环创建一个
,又有什么意义呢?在这种情况下,您将使用
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

您可以使用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
请注意,
zip
还不是一个集合,而是一个查询。每当您要枚举它时(例如,对于每个
首先
列表
等),您将再次执行此查询。如果需要持久化,您可以创建一个列表或数组(
ToList
/
ToArray
)并访问它。
许多LINQ方法的延迟求值被调用。

您可以通过索引与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
请注意,
zip
还不是一个集合,而是一个查询。每当您要枚举它时(例如,对于每个
首先
列表
等),您将再次执行此查询。如果需要持久化,您可以创建一个列表或数组(
ToList
/
ToArray
)并访问它。
许多LINQ方法的延迟求值被调用。

什么意思是它们具有相同的长度并且只有一个对象?那么两者都只包含一个对象?它们是否可能包含更多的元素?你到底想怎么加入他们??通过索引还是通过一些其他逻辑,比如公共Id?它与VB6有什么关系?我的意思是,一个对象没有obj1。这是可能的,所以显然没有共同的想法。通过索引是好的,我只是想知道什么是可能的,这意味着有相同的长度,只有一个对象?那么两者都只包含一个对象?它们是否可能包含更多的元素?你到底想怎么加入他们??通过索引还是通过一些其他逻辑,比如公共Id?它与VB6有什么关系?我的意思是,一个对象没有obj1。这是可能的,所以显然没有共同的想法。Via指数很好,我只是想知道它的可能性有多大。知道
Zip
,但从未使用过。我将修改下面的
Tuple
示例以使用它。您可以/应该在匿名类型的定义中添加
Key
,使字段为只读:
New With{Key obj,Key obj2}
我一直想知道如何使用
Zip()
扩展名,现在我终于知道了!回答得很好!好极了。知道
Zip
,但从未使用过。我将修改下面的
Tuple
示例以使用它。您可以/应该在匿名类型的定义中添加
Key
,使字段为只读:
New With{Key obj,Key obj2}
我一直想知道如何使用
Zip()
扩展名,现在我终于知道了!回答得很好!您可以将
AddressOf
与方法组一起使用,而不是使用lambda:
Zip(list2,AddressOf Tuple.Create)
@Sehnsucht。更新。您可以将
AddressOf
与方法组一起使用,而不是使用lambda:
Zip(list2,AddressOf Tuple.Create)
@Sehnsucht。更新。