嘿,我在创建程序的简单按钮时遇到问题,该程序找到数组中最大的单词并将其放入文本框中.我已经完成了大部分编码(我希望),想知道是否有人可以帮助我实际使用找到数组中最大文本的代码,因为我正在努力解决这个问题.
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
谢谢你的时间 - 它为大学作业,在它上面苦苦挣扎:(
编辑:我编辑了代码
由于这是作业,我不会为你编写代码; 相反,我会尝试给你一些提示,指出你正确的方向.
声明一个适当类型的变量来保存
,用该类型的"最短"值初始化它.
循环遍历数组中的所有值(可能带有For
或For Each
循环)
循环内部的伪代码:
If the Length ofexceeds _ the Length of the Then Assign to the End If
当循环结束时,
它将是数组中最长的值.
笔记
您可以使用MSDN关于如何使用引用一For
环或For Each
环 (如果你还没有学会For
循环呢,你也可以使用Do Loop
)
通过循环每次迭代都会有所不同; 它应该对应于数组中的每个连续值.您可以通过设置断点来验证这是否有效.
您可以通过说明获得字符串的长度 myString.Length
如果您已经了解了Function
s,请考虑编写一个以数组作为参数的函数,并返回数组中最长的值.
肯定有一些方法可以用LINQ做到这一点,但我认为这不是作业的目标; - ]
回应编辑1:
你的If
陈述必须是内部某种循环(For
,For Each
,Do
等), 我认为这是你缺少的关键概念.
相反,比较LongName.Length
到LengthOfLongestName
,你需要一个条目的长度比较你的阵列中LengthOfLongestName
你在正确的轨道上Members(0).Name.Length
,但你不能只检查元素0
; 你必须检查数组中的每个元素.
鉴于您当前的代码,您可能会分配
给LongName
一维数组中的最后一个索引是
或
.
以下内容并未真正解决您的任务中的任何问题,但我希望它能为您提供有关如何浏览列表中所有项目的一些建议:
' 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)
回应编辑2:
你变暖了......
你应该只更新LongName
,LengthOfLongName
如果当前值是你到目前为止看到的最长的(即它们应该在If
语句内部分配)
您必须转到数组的最后一个索引,而不是5.请参阅上面(对第一次编辑的响应)有关如何获取最后一个索引的信息.
你真的不需要UltimateName
变量; 你可以使用LongName
; - ]
您可能希望使用
而不是Len(
保持一致.