Getting the array key in a ‘foreach’ loop

Grauenwolf’s way is the most straightforward and performant way of doing this with an array:

Either use a for loop or create a temp variable that you increment on each pass.

Which would of course look like this:

int[] values = { 5, 14, 29, 49, 99, 150, 999 };

for (int key = 0; key < values.Length; ++key)
  if (search <= values[key] && !stop)
  {
    // set key to a variable
  }

With .NET 3.5 you can take a more functional approach as well, but it is a little more verbose at the site, and would likely rely on a couple support functions for visiting the elements in an IEnumerable. Overkill if this is all you need it for, but handy if you tend to do a lot of collection processing.

Leave a Comment

tech