0

我是 vb.net 的新手并且已经搜索过它,但我无法为 vb.net 找到一些东西。

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

我的计划是这样的:

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

但是会需要很长时间。我知道有一种更好、更短的方法可以做到这一点。有人能帮我吗?

4

2 回答 2

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
于 2013-02-14T06:50:16.563 回答
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
于 2013-02-14T07:02:29.733 回答