0

このループの何が問題になっていますか?

a文字列が変わらないことに気付きましたが、リスト内の次の文字列に移動することになっていると思いますが、 ProxyList.

Public Class Form1

    Public ProxyList As New List(Of String)
    Public AccountList As New List(Of String)

    For Each a As String In AccountList
        Dim z() As String = a.Split(":")

        For Each p As String In ProxyList
           ' SENDS WEBREQUESTS BY USING ACCOUNTS AND SETS PROXY '
        Next
    Next

クラス終了

4

1 に答える 1

0

これは、proxyList の項目ごとにアカウント リストを 1 回ループします。アカウント リストに 5 つの項目があり、proxyList に 10 項目がある場合、このコードは 50 回ループします。このコードは、あなたが望んでいたものと一致しないことを除けば、何も問題はありません。

あなたのコメントから、accountList と proxyList の両方を均等に進めたい場合は、実際に新しいクラスを定義する必要があります。

Public Class ProxyAccount
    Public Proxy As String
    Public Account As String
End Class

次に、コードは次のようになります。

Public Class Form1

    Public ProxyList As New List(Of ProxyAccount)

    For Each pa As ProxyAccount In ProxyList 
        Dim a as String = pa.Account
        Dim z() As String = a.Split(":") 
        Dim p as String = pa.Proxy   
        ' SENDS WEBREQUESTS BY USING ACCOUNTS AND SETS PROXY '
        Next
    Next
End Class

または、これを行うこともできます:

Public Class Form1

    Public ProxyList As New List(Of String)
    Public AccountList As New List(Of String)

    For i as Integer = 0 To ProxyList.Count - 1  
        If i >= AccountList.Count Then   
            Exit For
        End If
        Dim a As String = AccountList(i)    
        Dim z() As String = a.Split(":")  
        Dim p as String = ProxyList(i)  
        ' SENDS WEBREQUESTS BY USING ACCOUNTS AND SETS PROXY '
    Next
End Class

これら 2 つのどちらも問題なく動作しますが、コードをリファクタリングしてよりクリーンにする必要があります。

于 2013-09-01T08:16:50.947 に答える