3

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

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,我找不到太多关于此的内容,谢谢

4

1 回答 1

7

您可以使用 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
于 2013-02-20T19:18:16.620 回答