【发布时间】:2021-01-31 15:29:35
【问题描述】:
代码块计算两个速度值; Vsf 和 Vro 使用它们对应的参数值:for 循环语句的每次迭代的角度、超高和半径。在每个循环期间,它选择两个速度值中的最小值。在某些情况下,角度、超高,但最重要的是,半径都是空值,导致 Vsf 和 Vro 值为空,因此 Vmin 为空。我想消除这些情况,只为 Vmin 生成非零值,因此我的问题是。
For i = 1 To CInt(txtNumSections.Text)
ReDim Preserve Vsf(i)
ReDim Preserve Vro(i)
ReDim Preserve Vmin(i)
Vsf(i) = (((0.91544 - 0.00166 * Angle(i) - 0.000002 * W - 0.054248 * Superelevation(i) - Sidefrictionfactor) / 0.013939) * Radius(i)) ^ 0.5
Vro(i) = (((1.05653 - 0.004861 * Angle(i) - 0.000004 * W - 0.314653 * Superelevation(i) - rolloverthreshold) / 0.012729) * Radius(i)) ^ 0.5
Vmin(i) = Math.Min(Vsf(i), Vro(i))
If Vmin(i) <= "0" Then
Vmin(i) = "0"
End If
Next
Dim myList = New List(Of Double)
For Each s In Vmin
If Not String.IsNullOrWhiteSpace(s) Then
myList.Add(s)
End If
Next
Vmin = myList.ToArray()
【问题讨论】:
-
什么样的数组?
-
你应该使用Option Strict On,因为它会指出像
Vmin(i) = "0"这样的类型错误。