どうぞ - 文字列 (行) の配列が既に (おそらく を含むファイルから) あると仮定するとReadAllLines
、次のような方法で正しい方向に進むはずです。
Dim rowFound As Boolean = False
Dim rowNumber As Integer = 0
Dim columns As String()
Dim col1 As String = ""
Dim col2 As String = ""
Dim col3 As String = ""
Dim col4 As String = ""
Dim col5 As String = ""
Dim col6 As String = ""
Dim col7 As String = ""
Do While Not rowFound And rowNumber < rowArray.Length
columns = rowArray(rowNumber).Split(New Char() {","c)
If columns(0) = strID Then
rowFound = True
col1 = colunns(0)
col2 = columns(1)
col3 = columns(2)
col4 = columns(3)
col5 = columns(4)
col6 = columns(5)
col7 = columns(6)
Else
rowNumber = rowNumber + 1
End If
Loop
注意すべき点:
まず、これをテストしていないため、構文エラーが発生する可能性があります (私は VB.NET よりも多くの C# を使用しています)。
次に、While ループを使用して、探している行が早い段階で見つかった場合にすべての行をチェックする時間を無駄にしないようにしました。フラグ rowFound が true に設定されているか、rowNumber カウントが配列の長さを超えているか等しい場合、While ループは終了します (0 ベースのインデックス配列を想定)。
While ループ内で、各行を分割し、ID をチェックします。一致する場合は、変数に列の値を設定し、rowFound フラグを True に設定して、ループを終了します。一致するものがない場合、rowNumber 変数をインクリメントし、次の行を調べます (ある場合 - ない場合、While ループは終了します)。
String 以外の型で値を保存する場合は、キャストが必要になる場合があります (2 番目の列は DateTime のように見えます)。
とにかく、これは正しい方向に進むはずです。