Возможно, вы могли бы изменить свой код For Each
для обработки присвоения DenialReason
s.Это все еще похоже на взлом, но я думаю, что это может быть чище, что у вас есть.Если вы используете этот код, вам не нужен код, начинающийся с If count = 1...
:
Dim count As Integer = 0
Dim index As Integer = 1
For Each item As String In reasons
If item = "True" Then
count += 1
Select Case count
Case 1
DenialReason1 = index.ToString()
Case 2
DenialReason2 = index.ToString()
Case 3
DenialReason3 = index.ToString()
End Select
End If
index += 1
Next
Переменная index
, указанная выше, предполагает индекс на основе 1.Я думаю, что это чище, чем использовать IndexOf()
.
. Я думаю, что лучшим решением было бы иметь список DenialReason
s и добавить его в этот список, поскольку элементы истинны:
Dim count As Integer = 0
Dim index As Integer = 1
Dim denialReasons As New List(Of String)()
For Each item As String In reasons
If item = "True" Then
denialReasons.Add(index)
End If
index += 1
Next
Тогда вы можете просто перебрать свой список denialReasons
.Это гибкий подход, так что если по какой-либо причине у вас более трех DenialReason
с, вам не нужно добавлять еще одну жестко запрограммированную переменную.