从ListBox中减去最小值和最大值以查找范围

时间:2017-11-17 05:34:18

标签: vb.net

我似乎无法从min中减去最大值,是否有人知道如何解决这个问题。

代码:

Do While (rngNumbers < lstSize - 1)
    rngNumbers += 1
    If CBool(CDbl(lstAverage.Items(CInt(rngNumbers > max)))) Then
        max = CInt(lstAverage.Items(rngNumbers))
    ElseIf CBool(CDbl(lstAverage.Items(CInt(rngNumbers < min)))) Then
        min = CInt(lstAverage.Items(rngNumbers))
    End If
Loop
grdRange = max - min
txtRange.Text = grdRange.ToString

1 个答案:

答案 0 :(得分:2)

除此之外看起来不是很好的代码,但我认为这个:

If CBool(CDbl(lstAverage.Items(CInt(rngNumbers > max)))) Then

应该是这样的:

If CDbl(lstAverage.Items(rngNumbers)) > max Then

这是一个更适合For Each循环的场景:

For Each num As Double In lstAverage.Items
    If num > max Then
        max = num
    ElseIf num < min Then
        min = num
    End If
Next

您在原始代码中使用CDblCInt,因此我不知道您是使用Double还是Integer值。我在该示例中使用了Double,但如果Integer包含ListBox,则Integers的效果与Strings相同。希望它确实包含一个或另一个而不是{{1}}。