很抱歉,如果这是真正的基本问题,但我的教科书说要修改btnGet_Click过程以使用For Each ... Next语句而不是For ... Next语句。我无法让它正常工作,所以这里是原来For Each ... Next循环。
Private Sub btnGet_Click(sender As Object, e As EventArgs) Handles btnGet.Click
' displays the highest commission and the
' number who were paid that amount
Dim intCommissions() As Integer = {2500, 3400, 1000,
3400, 2500, 1000,
2850, 3000, 2780, 1890}
Dim intLastSub As Integer =
intCommissions.GetUpperBound(0)
Dim intHighest As Integer = intCommissions(0)
Dim intSalesPeople As Integer = 1
For intSub As Integer = 1 To intLastSub
If intCommissions(intSub) = intHighest Then
intSalesPeople += 1
Else
If intCommissions(intSub) > intHighest Then
intHighest = intCommissions(intSub)
intSalesPeople = 1
End If
End If
Next intSub
lblHighest.Text = intHighest.ToString("C0")
lblSalespeople.Text = intSalesPeople.ToString
End Sub
答案 0 :(得分:3)
您只需要在intCommissions
数组上运行for each:
Dim intCommissions() As Integer = {2500, 3400, 1000,
3400, 2500, 1000,
2850, 3000, 2780, 1890}
Dim intHighest As Integer = intCommissions(0)
Dim intSalesPeople As Integer = 1
For Each intCommission In intCommissions
If intCommission = intHighest Then
intSalesPeople += 1
Else
If intCommission > intHighest Then
intHighest = intCommission
intSalesPeople = 1
End If
End If
Next
答案 1 :(得分:1)
不是你的书要求你做的,所以这不是你问题的严格答案,但如果你想看看Linq ......
Dim intHighest = intCommissions.Max()
Dim intSalesPeople = intCommissions.Where(Function(x) x = intHighest ).Count()
lblHighest.Text = intHighest.ToString("C0")
lblSalespeople.Text intSalesPeople.ToString)
答案 2 :(得分:1)
Dim intCommissions() As Integer = {2500, 3400, 1000,
3400, 2500, 1000,
2850, 3000, 2780, 1890}
Dim intLastSub As Integer =
intCommissions.GetUpperBound(0)
Dim intHighest As Integer = intCommissions(0)
Dim intSalesPeople As Integer = 0 ' you need set 0.
For Each intCurrent In intCommissions
If intCurrent = intHighest Then
intSalesPeople += 1
Else
If intCurrent > intHighest Then
intHighest = intCurrent
intSalesPeople = 1
End If
End If
Next
Label1.Text = intHighest.ToString("C0")
TextBox1.Text = intSalesPeople.ToString