我是 vb.net 的新手并且已经搜索过它,但我无法为 vb.net 找到一些东西。
我想增加“0000”直到它达到“9999”然后循环直到我得到所需的输出。
我的计划是这样的:
if number = "0000" then 'result end if
if number = "0001" then 'result end if
但是会需要很长时间。我知道有一种更好、更短的方法可以做到这一点。有人能帮我吗?
我是 vb.net 的新手并且已经搜索过它,但我无法为 vb.net 找到一些东西。
我想增加“0000”直到它达到“9999”然后循环直到我得到所需的输出。
我的计划是这样的:
if number = "0000" then 'result end if
if number = "0001" then 'result end if
但是会需要很长时间。我知道有一种更好、更短的方法可以做到这一点。有人能帮我吗?
只需将其保留为整数(从 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
对你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