2017-11-17 6 views
1

minからmaxを減算しているようには見えません。ListBoxから最小値と最大値を減算して範囲を見つけます。

コード:

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 

答えて

2

以外に非常に良いコードのように見えるが、私はこのことを考えていません。

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

これは、次のとおりです。

If CBool(CDbl(lstAverage.Items(CInt(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 

あなたはDoubleまたはInteger値で作業しているかどうか私は知らないあなたの元のコードにCDblCIntを使用しています。この例ではDoubleを使用しましたが、ListBoxIntegersが含まれている場合はIntegerと同じになります。うまくいけば、それはどちらか一方を含み、Stringsではない。

関連する問題