我有一个表格,它是1个列表视图和一个文本框。
*列表视图总共有100行数据
*列表视图有5列
*第3列只有两个可能的单词yes
或no
我想计算第3列中单词yes
的出现次数
使用此代码计算总行数:
''''''''''COUNT TOTAL ADMISSION''''''''''''''
Dim rowcount As Integer = 0
For Each item As ListViewItem In LVfeestatementBA_I.Items
rowcount = CInt(item.SubItems(0).Text) 'Considering every column always have some value
Next
txttotaladBA_I.Text = rowcount.ToString()
任何帮助都会很棒
编辑1
这是一项学校作业。正如我所说,我的目标是找出第3列中单词的出现次数。我有MS访问数据库,它与代码连接并提供列表视图的数据。列表视图有5列,总共有100行。 col-3中的数据仅包含三个单词gen
,occ
和cc
。现在想要对包含代码的单词计算col-3并在textbox1
编辑2
我应用了thedarkspoon提供的功能,但它没有显示结果。我只想将结果显示在textbox1
中,例如。如果单词总数为78
,那么在form_load
时,它应在78
中显示textbox1
。我通过添加最后textbox1.text = numofyes
并将变量从integer
更改为string
现已正常工作
答案 0 :(得分:1)
我不太了解你的情况(你必须更清楚)。
无论如何,给定一个ListView显示每个有3个子项的项目,并且我们知道第三个子项将具有“是”或“否”的值,我们可以构建一个查询(使用linq):
var collectionOfListViewItems = listView1.Items.Cast<ListViewItem>();
var numberOfrowsWithTheThirdSubItemTextEqualToYes = (from c in collectionOfListViewItems where c.SubItems[3].Text == "yes" select c).Count();
没有linq你可以做一个foreach:
var numberOfrowsWithTheThirdSubItemTextEqualToYes = 0;
foreach (ListViewItem item in listView1.Items)
{
if (item.SubItems[3].Text == "yes")
numberOfrowsWithTheThirdSubItemTextEqualToYes++;
}
答案 1 :(得分:1)
好的,你去了,我把它作为一个功能,但你可以轻松地将其改编为子程序:
Function countyes()
'Set up a variable to count the number of yes:
Dim numofyes As Integer = 0
'Count the number of yes (Replace listview1 with the name of your listview):
For Each item As ListViewItem In ListView1.Items
'If the Yes/No is in column 3, you are looking in subitem 2:
If item.SubItems(2).Text = "Yes" Then
'Increment the variable by one if the value is yes:
numofyes = numofyes + 1
End If
Next
'Return our total number of Yes that we found:
Return numofyes
End Function
希望这有帮助!