繁体   English   中英

在单个文本框中添加整数(VB.NET)

[英]Adding integers in a single textbox (VB.NET)

我有一个代码,其中它对服务器执行ping操作,然后将经过的时间返回到文本框,并且每个分隔符之间都用换行符分隔。 我想确定从文本框中返回的值经过的最大,最小和平均时间。 我知道,为了确定平均值,我必须将所有值相加并除以对服务器执行ping操作的次数,这些次数是用户在另一个文本框中输入的,可以轻松地将其存储为变量,但是我不知道如何在单个文本框中添加值。 我也不知道如何确定最大值和最小值(也许使用<或>等式?)。

如果确定文本框中的每一行都是数字,则可以执行以下操作:

Dim numbers = txtBox.Text.Split(vbCrLf).Select(Function(line) Double.Parse(line)).ToList()
Dim maximum = numbers.Max()
Dim minimum = numbers.Min()
Dim average = numbers.Average()

如果不确定每一行都是数字,则初始化numbers的语句可能会在尝试将非数字解析为Double时引发异常。

在这种情况下,您可以说

Dim lines = txtBox.Text.Split(vbCrLf)
Dim numbers = new List(of Double)
Dim unparseableLines = new List(of String)
For Each line in lines
    Try
        numbers.Add(Double.Parse(line))
    Catch ex as FormatException
        unparseableLines.Add(line)
    End Try
Next
' maybe report the contents of unparseable to the user?

编写的代码使用LINQ中的现有功能来查找最大值,最小值和平均值。 如果您想使用不具备这些功能的语言来实现最大值或最小值,则可以执行以下操作

Dim minimum = Integer.MaxValue
For Each number in numbers
    If number < minimum Then minimum = number
Next

正如@Blackwood所提到的,最好保留一个单独的规范位置来保存数据,而只需使用文本框向用户显示这些数据即可。 这样,您不必从文本框中解析数字即可对它们执行这些操作; 您将直接获得创建它们的过程中的数字。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM