我是vb.net的新手并且已经搜索过但我找不到vb.net的内容。
我想增加“0000”直到它达到“9999”然后循环直到我得到所需的输出。
我的计划是:
if number = "0000" then 'result end if
if number = "0001" then 'result end if
但是需要很长时间。我知道有一个更好,更短的方法来做到这一点。有人能帮助我吗?
答案 0 :(得分:5)
保持整数(从0开始),你可以增加 - 然后格式整数使用:
Dim text = counter.ToString("0000")
要使9999循环到0000,您只需使用此代码递增计数器:
counter = (counter + 1) Mod 10000
编辑:如果只是想要计数而不从9999回到0000,你可以使用For
循环。例如......
For counter = 0 To 9999
Console.WriteLine(counter.ToString("0000"))
Next
答案 1 :(得分:1)
Enumerable.Range
可以对你有用吗? http://msdn.microsoft.com/en-au/library/system.linq.enumerable.range.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1
' Generate a sequence of integers from 1 to 9999
Dim numbers = Enumerable.Range(1, 9999)
For Each num As Integer In numbers
Console.WriteLine(num)
' or use this like Jon num.ToString("0000")
Next
我的意思是,这可能不那么方便,除非你想在以后的代码中查看你编写的代码中的数字列表。如果你没有一个简单的for循环就足够了。
您甚至可以按照所需格式生成数字列表:
Dim numbers = Enumerable.Range(1, 9999).Select(Function(x) x= x.ToString("0000"))
For Each num As String In numbers
If num = "0500" Then
' Do something
End If
Next
编辑:按要求
Public Function IsValidNumber(Byval input As String) As Boolean ' Yes/No
Dim numbers= Enumerable.Range(1, 9999).Select(Function(x) x= x.ToString("0000"))
Return numbers.Contains(input)
' Which is the same as below
'For Each num As String In numbers
' If num = input Then
' Return True
' End If
'Next
'Return False
End Function
' Usage
Dim isCorrect1 = IsValidNumber("0567") ' Will return True or Yes
Dim isCorrect2 = IsValidNumber("10500") ' Will return False or No