2017-10-23 1 views
0

Wie eine Ausgabe wie folgt machen:VB.Net Pause Foreach-Schleifen

Englisch James Moore, Math Karen Hatskin, Wissenschaft Quennie Orph (? Mit foreach-Schleife)

Ich habe diesen Code -

dim T.Items.Add("James Morre","Karen Hatskin","Quennie Orph") 
dim S.Items.Add("English","Math","Science") 

For Each teacherItem as string In T.Items 
    For Each subjectItem as string In S.Items 

    Next 
Next 

Update:

For Each teacherItem As String In tSub.Items 
       Try 
        For Each subjectItem As String In avSub.Items 
         Using cmd As New SqlClient.SqlCommand("insert into Student_Grade values('" & txt_lrn2.Text & "','" & txt_name.Text & "','" & txtgrade.Text & "','" & txtsection.Text & "','" & subjectItem.ToString & "','" & teacherItem.ToString & "',0,0,0,0,0,'" & SY.Text & "')", cn) 
          x = cmd.ExecuteNonQuery 
         End Using 
        Next 
       Catch ex As Exception 
        Continue For 
       End Try 
      Next 

aber meine Ausgabe ist so redundant. .

+0

nicht verwenden verschachtelte "For Each" -Schleifen. Verwenden Sie eine einzelne "For" -Schleife und verwenden Sie den Schleifenzähler als Index für beide Sammlungen. – jmcilhinney

+0

Wie kann ich den Index von zwei Sammlungen erhalten? jeder Beispielcode? – Jerwen

+0

Sie erhalten nicht den Index einer Sammlung. Der Schleifenzähler ist der Index. Wenn Sie nicht herausfinden können, wie Sie einen Artikel aus einer Sammlung per Index erhalten, versuchen Sie es nicht. Um es für zwei Sammlungen zu tun, tun Sie es einfach zweimal. – jmcilhinney

Antwort

1

Try this:

Dim T = {"James Morre", "Karen Hatskin", "Quennie Orph"} 
Dim S = {"English", "Math", "Science"} 

Dim n = Math.Min(T.Length, S.Length) 

For i = 0 To n - 1 
    Console.Write(S(i) & " " & T(i)) 
    If i < n - 1 Then 
     Console.Write(", ") 
    End If 
Next 

Das gibt:

 
English James Morre, Math Karen Hatskin, Science Quennie Orph 

Alternativ ohne Loops zu verwenden, das funktioniert auch:

Console.WriteLine(String.Join(", ", S.Zip(T, Function (x, y) x & " " & y))) 
+0

Ich habe meine Frage zur besseren Referenz geändert. . – Jerwen