我在vb.net中有一个小问题要解决,我必须计算数字1的出现次数1762728381128911我做了这个解决方案,但我相信有更复杂的方法来做到这一点。
Public Function CheckOccurance() As Integer
Dim numbersList As New List(Of String)
numbersList.Add("1")
numbersList.Add("7")
numbersList.Add("6")
numbersList.Add("2")
numbersList.Add("7")
numbersList.Add("2")
numbersList.Add("8")
numbersList.Add("3")
numbersList.Add("8")
numbersList.Add("1")
numbersList.Add("1")
numbersList.Add("2")
numbersList.Add("8")
numbersList.Add("9")
numbersList.Add("1")
numbersList.Add("1")
Dim count As Integer = 0
For Each value In numbersList
If value.Equals("1") Then count += 1
Next
Return count
End Function
答案 0 :(得分:2)
您没有指定要使此代码的哪个部分“更复杂”,但您可以使用Linq返回值
N.B必须使集合asEnumerable()
在名称冲突时选择扩展方法。
return numbersList.asEnumerable.Count(Function(v) v ="1")
请记住导入Linq名称空间
imports System.Linq
另外,正如Dmitry Bychenko所说(虽然是C#风味),你可以这样做......
return "1762728381128911".Count(function(v) v = "1")