我有一个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
谢谢
答案 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