如何计算列表中的字符串出现次数(Of String)

时间:2013-02-20 18:50:35

标签: vb.net

我希望从列表中动态计数,项目发生了多少次。如果我指定我正在寻找的值,我可以在下面执行此操作,但我真正想要做的是遍历我的列表,计算出现次数,并将它们全部输出。我目前的代码如下:

Dim itemlist As New List(Of String)
itemlist.add("VALUE1")
itemlist.add("VALUE2")
itemlist.add("VALUE3")


    Dim count As Integer = 0

    For Each value In itemlist

        If value.Equals("VALUE1") Then count += 1

    Next

 Msgbox(count.tostring)

所以我的观点是不是搜索值,而是让应用程序将它们合计并向用户显示计数的出现次数,类似于excel中的“COUNTIF”。我不能在不使用LINQ的情况下找到很多,谢谢

1 个答案:

答案 0 :(得分:3)

您可以使用LINQ轻松完成此操作:

Msgbox(itemlist.Where(Function(value) value = "VALUE1").Count)

要计算重复数,再次使用LINQ很容易:

Dim itemlist As New List(Of String)
itemlist.Add("RED")
itemlist.Add("RED")
itemlist.Add("RED")
itemlist.Add("GREEN")

dim groups = itemList.GroupBy(Function(value) value)

For Each grp In groups
    Console.WriteLine(grp(0) & " - " & grp.Count )
Next

输出:

RED - 3
GREEN - 1