2012-03-29 3 views
0

Ich habe eine for-Schleife "für jedes val in Werten" Ich möchte innerhalb dieser Schleife einige wie Positionen vor der aktuellen Position für eine Bedingung überprüfen. Ich bin mir nicht sicher, wie ich das tun kann, abgesehen davon, dass ich von der aktuellen Position aus eine innere for-Schleife habe. Wenn das der Fall ist, bin ich nicht sicher, wie ich die aktuelle Position bekommen kann. Kann mir irgendjemand hier helfen?starten eine for-Schleife von der aktuellen Position

Ich habe dies mit diesem Code unten versucht, die innere for-Schleife.

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 

dank

+0

Wo ist 'in der Schleife verwendet intLoopIndex'? – ja72

Antwort

1

ich nicht folgen, was Sie innerhalb der Schleife mit Ihrem Code zu tun, versuchen aber intLoopIndex enthält den aktuellen Wert für die Stromschleife.

Wenn Sie also einen vor der aktuellen Schleife haben möchten, verwenden Sie intLoopIndex + 1. Verwenden Sie für eine Person intLoopIndex - 1.

+0

Entschuldigung, ich möchte vom aktuellen Index zum Ende der Liste loopen? wie kann ich das tun – aspiringCoder

+0

Sie können eine Schleife innerhalb Ihrer Schleife haben. 'For innerLoopIndex = intLoopIndex zu Values.Count' – Brad

+0

kann ich einen String-Wert dann aus einer dieser Variablen? Jetzt habe ich den innerLoopIndex? – aspiringCoder

1

Verwenden Sie eine For anstelle einer ForEach, um zu wissen, wo Sie in dem Array sind, und verwenden Sie Linq, um die verbleibenden Werte zu filtern.

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 

mit dem Ausgang:

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 
Verwandte Themen