-2

我有一个表单,它是 1 个列表视图和一个文本框。
* 列表视图共有 100 行数据
* 列表视图有 5 列
* 第 3 列只有两个可能的词yesno

我想计算第yes3 列中单词的出现次数

总行可以用这个代码计算:

''''''''''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 中的数据仅包含三个单词genocccc。现在想用代码计算 col-3 的单词并显示像 (68) 这样的数字textbox1

编辑 2

我应用了 thedarkspoon 提供的功能,但没有显示结果。我只希望结果显示在textbox1,例如。如果总字数是,78那么form_load它应该显示78textbox1. 我通过最后添加textbox1.text = numofyes并更改变量从现在integerstring现在它的工作解决了这个问题

4

2 回答 2

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++;
     }
于 2012-06-01T19:24:01.627 回答
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

希望这可以帮助!

于 2012-06-02T17:19:13.717 回答