Jagged Array in C#

In this article, I will explain about jagged array in C#.

What is a jagged array in C#

A jagged array in C# is an array whose elements are arrays. The elements of a jagged array can be of different dimensions and sizes. A jagged array is sometimes called an "array of arrays." A special type of array is introduced in C#. A Jagged Array is an array of an array in which the length of each array index can differ.

Example:

int[][] jagArray = new int[5][];

In the above declaration, the rows are fixed in size. But columns are not specified as they can vary.

Declaring and initializing a jagged array

int[][] jaggedArray = new int[5][];  
jaggedArray[0] = new int[3];  
jaggedArray[1] = new int[5];  
jaggedArray[2] = new int[2];  
jaggedArray[3] = new int[8];  
jaggedArray[4] = new int[10];  
jaggedArray[0] = new int[] { 3, 5, 7, };  
jaggedArray[1] = new int[] { 1, 0, 2, 4, 6 };  
jaggedArray[2] = new int[] { 1, 6 };  
jaggedArray[3] = new int[] { 1, 0, 2, 4, 6, 45, 67, 78 };  
jaggedArray[4] = new int[] { 1, 0, 2, 4, 6, 34, 54, 67, 87, 78 }; 

You can also initialize the array upon declaration like this:

int[][] jaggedArray = new int[][]  
{  
new int[] { 3, 5, 7, },  
new int[] { 1, 0, 2, 4, 6 },  
new int[] { 1, 6 },  
new int[] { 1, 0, 2, 4, 6, 45, 67, 78 }  
}; 

You can use the following shorthand form:

int[][] jaggedArray =  
{  
new int[] { 3, 5, 7, },  
new int[] { 1, 0, 2, 4, 6 },  
new int[] {1, 2, 3, 4, 5, 6, 7, 8},  
new int[] {4, 5, 6, 7, 8}  
}; 

Note: Notice that you cannot omit the new operator from the elements initialization because there is no default initialization for the elements.

Jagged Array in C#

Jagged array real life example

You can consider jagged array as a movie ticket counter where ticket selling counters are fixed (rows are fixed) but you don't know how many people will be standing in each counter in a queue (column numbers are not fixed can vary on different rows).

A jagged array is an array of arrays, and therefore its elements are reference types and are initialized to null.

It is possible to mix jagged and multidimensional arrays. The following is a declaration and initialization of a single-dimensional jagged array that contains two-dimensional array elements of different sizes:

int[][,] jaggedArray = new int[4][,]  
{  
new int[,] { {11,23}, {58,78} },  
new int[,] { {50,62}, {45,65}, {85,15} },  
new int[,] { {245,365}, {385,135} },  
new int[,] { {1,2}, {4,4}, {4,5} }  
}; 

We should be careful using methods like GetLowerBound(), GetUpperBound, GetLength, etc. with jagged arrays. Since jagged arrays are constructed out of single-dimensional arrays, they shouldn't be treated as having multiple dimensions in the same way that rectangular arrays do.

Practical demonstration of jagged array of integers

using System;  
namespace jagged_array  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            // Declare the array of four elements:  
            int[][] jaggedArray = new int[4][];  
            // Initialize the elements:  
            jaggedArray[0] = new int[2] { 7, 9 };  
            jaggedArray[1] = new int[4] { 12, 42, 26, 38 };  
            jaggedArray[2] = new int[6] { 3, 5, 7, 9, 11, 13 };  
            jaggedArray[3] = new int[3] { 4, 6, 8 };  
            // Display the array elements:  
            for (int i = 0; i < jaggedArray.Length; i++)  
            {  
                System.Console.Write("Element({0}): ", i + 1);  
                for (int j = 0; j < jaggedArray[i].Length; j++)  
                {  
                    System.Console.Write(jaggedArray[i][j] + "\t");  
                }  
                System.Console.WriteLine();  
            }  
            Console.ReadLine();  
        }  
    }  
}

Run the code to see the output.

Jagged Array in C#

Practical demonstration of jagged array of string

using System;  
namespace jagged_array  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            string[][] Members = new string[4][]{  
               new string[]{"Rocky", "Sam", "Alex"},  
               new string[]{"Peter", "Sonia", "Prety", "Ronnie", "Dino"},  
            new string[]{"Yomi", "John", "Sandra", "Alex", "Tim", "Shaun"},  
            new string[]{"Teena", "Mathew", "Arnold", "Stallone", "Goddy", "Samson", "Linda"},  
                };  
            for (int i = 0; i < Members.Length; i++)  
            {  
                System.Console.Write("Name List ({0}): ", i + 1);  
                for (int j = 0; j < Members[i].Length; j++)  
                {  
                    System.Console.Write(Members[i][j] + "\t");  
                }  
                System.Console.WriteLine();  
            }  
            Console.ReadKey();  
        }  
    }  
} 

Run the code to see the output.

Jagged Array in C#

Conclusion

In this article, I discussed jagged arrays and how to use them.

Read more: Working with Arrays In C#


Similar Articles