数组中最大的单词

Har*_*rry 0 arrays

嘿,我在创建程序的简单按钮时遇到问题,该程序找到数组中最大的单词并将其放入文本框中.我已经完成了大部分编码(我希望),想知道是否有人可以帮助我实际使用找到数组中最大文本的代码,因为我正在努力解决这个问题.

    Private Sub btnLongName_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLongName.Click
        Dim LongName As String
        Dim LengthOfLongestName As Integer
        Dim UltimateName As String


        For i As Integer = 0 To 5
            LongName = Members(i).Name
            LengthOfLongestName = Len(LongName)
            If Members(i).Name.Length > LengthOfLongestName Then



            End If
        Next i

        txtResult.Text = "The longest name is " & UltimateName & " ."
    End Sub
End Class
Run Code Online (Sandbox Code Playgroud)

谢谢你的时间 - 它为大学作业,在它上面苦苦挣扎:(

编辑:我编辑了代码

Dan*_*ant 10

由于这是作业,我不会为你编写代码; 相反,我会尝试给你一些提示,指出你正确的方向.

  1. 声明一个适当类型的变量来保存<longest value so far>,用该类型的"最短"值初始化它.
  2. 循环遍历数组中的所有值(可能带有ForFor Each循环)

循环内部的伪代码:

If the Length of <the value being checked> exceeds _
   the Length of the <longest value so far> Then 

   Assign <the value being checked> to the <longest value so far> 

End If
Run Code Online (Sandbox Code Playgroud)

当循环结束时,<longest value so far>它将是数组中最长的值.

笔记

  • 您可以使用MSDN关于如何使用引用ForFor Each (如果你还没有学会For循环呢,你也可以使用Do Loop)
  • <the value being checked>通过循环每次迭代都会有所不同; 它应该对应于数组中的每个连续值.您可以通过设置断点来验证这是否有效.
  • 您可以通过说明获得字符串的长度 myString.Length
  • 如果您已经了解了Functions,请考虑编写一个以数组作为参数的函数,并返回数组中最长的值.
  • 肯定有一些方法可以用LINQ做到这一点,但我认为这不是作业的目标; - ]

回应编辑1:

  • 你的If陈述必须是内部某种循环(For,For Each,Do等), 我认为这是你缺少的关键概念.
  • 相反,比较LongName.LengthLengthOfLongestName,你需要一个条目的长度比较你的阵列中LengthOfLongestName
  • 你在正确的轨道上Members(0).Name.Length,但你不能只检查元素0; 你必须检查数组中的每个元素.
  • 鉴于您当前的代码,您可能会分配<An entry in your array>.NameLongName
  • 一维数组中的最后一个索引是<array>.Length - 1<array>.GetUpperBound(0).

以下内容并未真正解决您的任务中的任何问题,但我希望它能为您提供有关如何浏览列表中所有项目的一些建议:

' A For loop that does a message box for each of the numbers from 0 to 5 '
For i as Integer = 0 To 5
   MessageBox.Show(i)
Next i

' Code that does a message box with the names of the 2nd, 3rd and last '
' entries in Members '
' (Remember that the first item is at 0, the second item is at 1, etc...) '
MessageBox.Show(Members(1).Name)
MessageBox.Show(Members(2).Name)
MessageBox.Show(Members(Members.GetUpperBound()).Name)
Run Code Online (Sandbox Code Playgroud)

回应编辑2:

你变暖了......

  • 你应该只更新LongName,LengthOfLongName如果当前值是你到目前为止看到的最长的(即它们应该在If语句内部分配)
  • 您必须转到数组的最后一个索引,而不是5.请参阅上面(对第一次编辑的响应)有关如何获取最后一个索引的信息.
  • 你真的不需要UltimateName变量; 你可以使用LongName; - ]
  • 您可能希望使用<stringVariable>.Length而不是Len(<stringVariable>)保持一致.