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