Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do you loop through a multidimensional array?

foreach (String s in arrayOfMessages) {     System.Console.WriteLine(s); } 

string[,] arrayOfMessages is being passed in as a parameter.

I want to be able to determine which strings are from arrayOfMessages[0,i] and arrayOfMessages[n,i], where n is the final index of the array.

like image 612
orange Avatar asked Feb 15 '12 20:02

orange


2 Answers

Simply use two nested for loops. To get the sizes of the dimensions, you can use GetLength():

for (int i = 0; i < arrayOfMessages.GetLength(0); i++) {     for (int j = 0; j < arrayOfMessages.GetLength(1); j++)     {         string s = arrayOfMessages[i, j];         Console.WriteLine(s);     } } 

This assumes you actually have string[,]. In .Net it's also possible to have multidimensional arrays that aren't indexed from 0. In that case, they have to be represented as Array in C# and you would need to use GetLowerBound() and GetUpperBound() the get the bounds for each dimension.

like image 146
svick Avatar answered Sep 29 '22 04:09

svick


With a nested for loop:

for (int row = 0; row < arrayOfMessages.GetLength(0); row++) {    for (int col = 0; col < arrayOfMessages.GetLength(1); col++)    {       string message = arrayOfMessages[row,col];       // use the message    }     } 
like image 23
Henk Holterman Avatar answered Sep 29 '22 04:09

Henk Holterman