从当前位置开始for循环

时间:2012-03-29 19:08:47

标签: vb.net

我有一个for循环“为每个val值”我想在这个循环中一些如何检查条件的当前位置前面的位置。我不确定我是如何做到这一点,但除了从当前位置有一个内部for循环。如果是这种情况我不知道如何获得当前的位置。任何人都可以帮助我吗?

我尝试使用下面的代码,内部for循环。

   If creditPoints = "10" Then
            Dim valcount As Integer = Val.Count
            For intLoopIndex = valcount To Values.Count

                If Val.Contains("1-2") And Val.Contains("20") Then

                    isAvailable = False

                End If

            Next
        End If

谢谢

2 个答案:

答案 0 :(得分:1)

我不遵循您在循环中尝试对代码执行的操作,但intLoopIndex包含当前循环的当前值。

所以,如果你想要一个在当前循环之前,请使用intLoopIndex + 1。对于后面的人,请使用intLoopIndex - 1

答案 1 :(得分:1)

使用For代替ForEach,以便了解您在阵列中的位置,并使用Linq过滤剩余的值。

Sub Main()

    Dim Values As String() = {"1", "1-2", "3", "20", "5"}


    For index As Integer = 0 To Values.Length - 1

        If IsAvailable(Values.Skip(index).ToArray()) Then
            'Do something
            Console.WriteLine("Is available for index={0}", index)
        Else
            Console.WriteLine("Not available for index={0}", index)
        End If

    Next


End Sub

Public Function IsAvailable(ByVal Values As String()) As Boolean
    Return Values.Any(Function(s) s.Contains("1-2") OrElse s.Contains("20"))
End Function

输出:

Is available for index=0
Is available for index=1
Is available for index=2
Is available for index=3
Not available for index=4