Sabari M Sabari M
Updated date Apr 22, 2021
In this blog, we will learn how to declare, getting and setting jagged arrays. Jagged arrays are arrays in which member arrays can be of different sizes. It's like an array of arrays - each array element contains another array.

Jagged arrays are arrays in which member arrays can be of different sizes. It's like an array of arrays - each array element contains another array.

Jagged arrays are similar to multidimensional arrays, but have a minor difference. The multidimensional arrays have a fixed number of rows and columns where the jagged arrays can have a different number of columns in every row.

How to declare a jagged array?

For this example, declaring a jagged array with 5 columns:

int[][] x = new int[5][];

The second [] is initialized without a number. To initialize the sub-arrays, we need to do that separately as shown below,

for (int i = 0; i < x.length; i++) 
{
    x[i] = new int[10];
}

How to Get/Set values in a jagged array?

Now, getting one of the subarrays is easy. Let's print all the numbers of the 4th column of a:

for (int i = 0; i < x[3].length; i++)
{
    Console.WriteLine(x[3][i]);
}

Get a specific value:

x[<row_number>][<column_number>]

Set a specific value:

x[<row_number>][<column_number>] = <value>

Note: Jagged arrays (arrays of arrays) are faster and safe to use so use jagged arrays rather than multidimensional arrays (matrixes).

Order of the brackets to Note:

Consider a four-dimensional array of six-dimensional arrays of one-dimensional arrays of int. This should be written in C# as:

int[,,,][,,,,,][] arr = new int[3, 2, 10,6][,,,,,][];

In the CLR type system, the convention for the ordering of the brackets is reversed, so with the above arr the instance we have:

arr.GetType().ToString() == "System.Int32[][,,,,,][,,,]"

and likewise:

typeof(int[,,,][,,,,,][]).ToString() == "System.Int32[][,,,,,][,,,]"

ABOUT THE AUTHOR

Sabari M
Sabari M
Software Professional, India

IT professional with 14+ years of experience in Microsoft Technologies with a strong base in Microsoft .NET (C#.Net, ASP.Net MVC, ASP.NET WEB API, Webservices,...Read More

https://www.techieclues.com/profile/alagu-mano-sabari-m

Comments (0)

There are no comments. Be the first to comment!!!