【问题标题】:How do I offset a String() in vb.net?如何在 vb.net 中偏移 String()?
【发布时间】:2013-04-06 22:16:15
【问题描述】:

我在一个目录中有一系列文件要遍历,但我需要能够从列表中的特定文件开始,它不一定是 string() 中的第一项。如果我有 String() {"a","b","c","d"} 并且我想遍历每一个但从 c、b 或 d 而不是 a 开始,我该如何完成在 .... 中使用 For Each 项目 注意:但是解决方案必须能够处理列表中不同数量的项目。

谢谢!

【问题讨论】:

  • 列表中有哪些具体文件,String() 是什么?你试过什么?
  • 注意:如果我从 "b"、"c" 或 "d" 开始,我必须能够遍历列表中的所有项目 n 无论如何,我只想从 a索引 0 以外的其他项目。如果我从索引 3 开始,我必须也能够遍历索引 0,1 和 2。
  • 从哪里开始是应用程序的设置。我多次遍历这个列表,我只需要它能够从它停止的地方开始(这​​是一个调度程序。

标签: vb.net string for-loop foreach offset


【解决方案1】:

你不能这样做。 For Each-ing 在数组上总是会从第一项到最后一项进行枚举。

当然,您可以自己实现此行为。

    Dim myArray As String() = {"a", "b", "c", "d", "e"}
    Dim offset As Integer = 2

    For i As Integer = offset To UBound(myArray)
        Dim item As String = myArray(i)
        ' Do things
        Console.WriteLine(item)
    Next
    If Not offset = 0 Then
        For i As Integer = 0 To offset - 1
            Dim item As String = myArray(i)
            ' Do things
            Console.WriteLine(item)
        Next
    End If

    Console.ReadLine()

将通过 (offset, offset+1, offset+2.... offset+(n-offset-1), 0, 1, 2 ... offset-1)。 可能有些错误,我的VB生锈了。

【讨论】:

  • 因此不起作用,因为我得到 ERROR: SystemArgumentOutOfRange 指定偏移量不是 0 并且代码也关闭时。两个“循环”都应该是“下一个”,这对字符串()不起作用。
  • 抱歉,我确实说过我的 VB 生锈了:P。我启动了 VS 并写了一些有用的东西。输出:c d e a b。我在答案中反映了新代码。
  • 谢谢,我去看看
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多