如何使用vb.net增加“0000”并循环到“9999”

时间:2013-02-14 06:49:01

标签: vb.net

我是vb.net的新手并且已经搜索过但我找不到vb.net的内容。

我想增加“0000”直到它达到“9999”然后循环直到我得到所需的输出。

我的计划是:

if number = "0000" then 'result end if
if number = "0001" then 'result end if

但是需要很长时间。我知道有一个更好,更短的方法来做到这一点。有人能帮助我吗?

2 个答案:

答案 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