我之前问了一个与此主题有关的问题。我想知道如何制作一个循环,将一个表单中的所有textbox.text值加在一起。这是我得到的回应,效果很好。
sum = 0
For Each ctrl In Me.Controls.OfType(Of TextBox)()
Dim txt As TextBox = DirectCast(ctrl, TextBox)
Dim i As Integer = 0
If Integer.TryParse(txt.Text, i) Then
sum = sum + i
End If
Next
我想知道的是如何使用相同的按钮以表格的形式获取每个文本框的值,然后将它们全部集中在一个列表/数组中?
这是一个非常简单的问题,但是我只是在任何地方都找不到确切的语法。
此外,如果使用类似的循环,但执行list.Add(text)
,则会中断第一个循环。
谢谢!
答案 0 :(得分:2)
您只需要将已解析的整数添加到List(Of Int32)
:
Dim list As New List(Of Int32)
For Each txt In Me.Controls.OfType(Of TextBox)()
Dim num As Int32 = 0
If Integer.TryParse(txt.Text, num) Then
list.Add(num)
End If
Next
Dim sum = list.Sum() ' easier ;-)
由于TextBox
,ctrl
已经是TextBox
,因此不需要强制转换为OfType
。
答案 1 :(得分:1)
Dim listOfTextBox = Me.Controls.OfType(Of TextBox).ToList()
Dim listOfValue = listOfTextBox.Select(Function(e) Integer.Parse(e.Text))
Dim sum = listOfValue.Sum()