Vb.net 如何计算数组中的最大数…visual basic

Vb.net 如何计算数组中的最大数…visual basic,vb.net,vba,Vb.net,Vba,如何计算数组中的最大数字…下面是代码…有人能帮我解决问题吗…我想在其他windows窗体的标签中显示结果…谢谢你 Public Class Frm2 Public Parties(9) As String Public Votes(9) As String Dim vote As Integer Dim Party As String Party = TParty.Text vote = TVote.Text

如何计算数组中的最大数字…下面是代码…有人能帮我解决问题吗…我想在其他windows窗体的标签中显示结果…谢谢你

Public Class Frm2
    Public Parties(9) As String
    Public Votes(9) As String

    Dim vote As Integer
        Dim Party As String


        Party = TParty.Text
        vote = TVote.Text



     For I As Integer = 0 To Parties.Length - 1
            If Parties(I) = "" Then
                Parties(I) = TParty.Text()

                For J As Integer = 0 To Votes.Length - 1
                    If Votes(J) = "" Then
                        Votes(J) = TVote.Text()
                        MsgBox(TParty.Text & TVote.Text & "  votes")
                        TParty.Clear()
                        TVote.Clear()

                        Exit Sub
                    End If
                Next J
            End If
        Next

        MsgBox("you can vote now")

如果您想使用算法在数组中查找最大的数字(比如说
投票数
),经典算法来自所谓的冒泡排序:

现在变量
max
存储数组
投票
的最高值,您可以在任何地方显示,例如在
MyForm.MyLabel.Text=max
中。更多有用的信息


请注意,现在您将
公众投票(9)声明为字符串,这意味着它们是字符串,因此不能用作数字。您可能希望使用不同的数据类型声明它们,或者使用
CInt()
方法按照ja72的建议转换整数字符串

我认为这只适用于
变体
数组,但在快速测试中,它似乎也适用于
数组:

Dim Votes(9) as Long    
Dim Max As Long
Max=WorksheetFunction.Max(Votes)
请注意,正如Matteo所说,您应该将vots()更改为数字类型的数组。我会使用
Long
,因为它是原生VBA类型

编辑:正如Dee所指出的,这个问题中的代码实际上是VB.Net。我把它作为标签加上去了。在VBA中,解决方案会更简单,因为
Max
是一个数组属性:

Max=Votes.Max

(我想将变量名从“Max”改为“Max”是个好主意)

是否将数字存储为文本?考虑使用<代码> VoTes()作为整数< /代码>。我不知道在哪里<代码> TPU</代码>或<代码> TVote <代码>。这是代码在VBA还是在VB.NET?@ DEE在您的评论之后,实际上在我看来它是在VB.NET。确保这一点很重要,因为在这种情况下,用户将无法使用
WorksheetFunction.Max(投票)
@MatteoNNZ,这一点很好。在这种情况下,只需使用
投票.Max
。或使用
CInt()
将字符串转换为整数即可。请注意,此方法不仅更易于“写入”,而且效率更高,因为它使用内置函数,而不是通过元素循环。我个人只能对此进行投票,但如果我是你,我会选择这种方式。
Max=Votes.Max