我想循環兩個字符串數組,但不起作用。 可能看起來像以下:有沒有辦法在vb.net的每個循環中遍歷多個變量?
For Each (s1, s2) As (String, String) In (stringArray1, stringArray2)
是否有類似我可以使用Python的元組的東西嗎?
我想循環兩個字符串數組,但不起作用。 可能看起來像以下:有沒有辦法在vb.net的每個循環中遍歷多個變量?
For Each (s1, s2) As (String, String) In (stringArray1, stringArray2)
是否有類似我可以使用Python的元組的東西嗎?
我認爲vb.net不支持這種方式。
如果你有兩個IEnumerables,你可以做這樣的事情
Using lst1 As IEnumerator(Of X) = List1.GetEnumerator(),
lst2 As IEnumerator(Of Y) = List2.GetEnumerator()
While lst1 .MoveNext() AndAlso lst2 .MoveNext()
If lst1 .Current.Equals(lst2 .Current) Then
''Put here your code.
End If
End While
End Using
爲了更好地解釋,檢查此相關鏈接:Is it possible to iterate over two IEnumerable objects at the same time?
如果他們是你可以做類似的長度相同。 ..
dim i as integer = 0
do until i = s1.length
dim s1Value as string = s1(i)
dim s2Value as string = s2(i)
i += 1
loop
Sub Main()
Dim arr1() As String = {"a", "b", "c"}
Dim arr2() As String = {"1", "2", "3"}
For Each t In TupleSequence(arr1, arr2)
Console.WriteLine(t.Item1 & "," & t.Item2)
Next
Console.ReadLine()
End Sub
Function TupleSequence(Of T1, T2)(
ByVal seq1 As IEnumerable(Of T1),
ByVal seq2 As IEnumerable(Of T2)
) As IEnumerable(Of Tuple(Of T1, T2))
Return Enumerable.Zip(seq1, seq2,
Function(s1, s2) Tuple.Create(s1, s2)
)
End Function
雖然不如Python好。
我已經研究過相同的問題,但在VB.Net中找不到美麗的編碼方式。但是我認爲沒有必要像Python,Tcl等一樣做。所以我只是使用For-Loop,類似於Jack的答案。這也適用於List。
'List1.Count = List2.Count
For i as Integer = 0 To List1.Count - 1
'Work on List1.Item(i) and List2.Item(i)
Next
我的猜測是,這不是有效的,因爲在古典列表中,每個項目請求將從列表開始走到i元素到訪問它。也許.net是爲了使這個命令更高效而建立的,但這可能是一種不好的做法。 – 2013-05-17 15:59:56
正確:不。 – 2011-03-29 14:57:06
我想你已經從鏈接複製了一個答案。但是,相關問題略有不同:它尋求平等的條目。我想你應該刪除如果'如果lst1 .Current.Equals(lst2 .Current)然後' – MarkJ 2011-03-29 19:07:41