从 RichTextBox 获取最大值
Get max value from RichTextBox
我很难从富文本框中获取正确的最大值。我尝试使用 3 种不同的方法来查找最大值,并且所有方法都以相同的方式工作。对于此示例,我使用 GPS 速度数据。所以我将速度 1 乘 1 添加到富文本框。我遇到的问题在某些情况下使我的最大速度值为 11.3 或 11.4。
例如,如果速度大于 12.0 就可以正常工作。如果速度低于 11.0,它工作正常。如果速度高于(或开始高于)11.5 但随后降至 11.5 以下,则报告的最大值将是这些 11.3 或 11.4 数字之一
看来我的代码确实认为 11.3 是最大的数字。
我尝试了 Richtextbox.lines.Max(),我尝试将数据添加到列表中,还尝试从 RTB 添加到数组并使用以下方法。
Private Sub CheckMaxSpeed()
Dim speed
If MaxSpeedRTB.Text = "" Then
MaxSpeedtxt.Text = "N/A"
MaxSpeedtxt.Text = "N/A"
Exit Sub
Else
'speed = MaxSpeedRTB.Lines.Max()
'Dim speedlist As List(Of String) = MaxSpeedRTB.Lines.ToList
Dim myArr As String() = MaxSpeedRTB.Lines
speed = myArr.Max()
'speed = speedlist.Max
speed *= 1.15078
speed = Math.Round(speed, 1)
If speed < 0.4 Then
speed = "0.0"
End If
MaxSpeedtxt.Text = speed & " MPH"
MaxSpeedRTB.Clear()
MaxSpeedCom = False
End If
对 string
调用 Max
是灾难的根源。
相反,尝试将所有行解析为 Single
,然后对其调用 Max
:
Dim lines = RichTextBox1.Lines
Dim values = New List(Of Single)
For Each line As String In lines
Dim result As Single
Dim tryParse = Single.TryParse(line, result)
If tryParse Then
values.Add(result)
End If
Next
Dim max = values.Max()
结果:
For the following lines in RichTextBox:
11.1
11.123
Max = 11.123
我很难从富文本框中获取正确的最大值。我尝试使用 3 种不同的方法来查找最大值,并且所有方法都以相同的方式工作。对于此示例,我使用 GPS 速度数据。所以我将速度 1 乘 1 添加到富文本框。我遇到的问题在某些情况下使我的最大速度值为 11.3 或 11.4。
例如,如果速度大于 12.0 就可以正常工作。如果速度低于 11.0,它工作正常。如果速度高于(或开始高于)11.5 但随后降至 11.5 以下,则报告的最大值将是这些 11.3 或 11.4 数字之一
看来我的代码确实认为 11.3 是最大的数字。
我尝试了 Richtextbox.lines.Max(),我尝试将数据添加到列表中,还尝试从 RTB 添加到数组并使用以下方法。
Private Sub CheckMaxSpeed()
Dim speed
If MaxSpeedRTB.Text = "" Then
MaxSpeedtxt.Text = "N/A"
MaxSpeedtxt.Text = "N/A"
Exit Sub
Else
'speed = MaxSpeedRTB.Lines.Max()
'Dim speedlist As List(Of String) = MaxSpeedRTB.Lines.ToList
Dim myArr As String() = MaxSpeedRTB.Lines
speed = myArr.Max()
'speed = speedlist.Max
speed *= 1.15078
speed = Math.Round(speed, 1)
If speed < 0.4 Then
speed = "0.0"
End If
MaxSpeedtxt.Text = speed & " MPH"
MaxSpeedRTB.Clear()
MaxSpeedCom = False
End If
对 string
调用 Max
是灾难的根源。
相反,尝试将所有行解析为 Single
,然后对其调用 Max
:
Dim lines = RichTextBox1.Lines
Dim values = New List(Of Single)
For Each line As String In lines
Dim result As Single
Dim tryParse = Single.TryParse(line, result)
If tryParse Then
values.Add(result)
End If
Next
Dim max = values.Max()
结果:
For the following lines in RichTextBox:
11.1
11.123
Max = 11.123