c# restart for loop

Kirev picture Kirev · May 28, 2012 · Viewed 16.2k times · Source

So I have these few lines of code:

string[] newData = File.ReadAllLines(fileName)
int length = newData.Length;
for (int i = 0; i < length; i++)
{
    if (Condition)
    {
       //do something with the first line
    }
    else
    {
      //restart the for loop BUT skip first line and start reading from the second
    }
}

I've tried with goto, but as you can see, if I start the for loop again, it'll start from the first line.

So how can I restart the loop and change the starting line(getting different key from the array)?

Answer

Binary Worrier picture Binary Worrier · May 28, 2012

I'd argue that a for loop is the wrong type of loop here, it doesn't correctly express the intent of the loop, and would definitely suggest to me that you're not going to mess with the counter.

int i = 0;
while(i < newData.Length) 
{
    if (//Condition)
    {
       //do something with the first line
       i++;
    }
    else
    {
        i = 1;
    }
}