Jagged arrays let you store arrays inside an array, where each inner array can have a different size. This helps when you want to group related data but the groups are not all the same length.
Jagged arrays in C Sharp (C#)
class Program { static void Main() { // Declare a jagged array with 3 rows int[][] jaggedArray = new int[3][]; // Initialize each row with different lengths jaggedArray[0] = new int[2]; jaggedArray[1] = new int[4]; jaggedArray[2] = new int[3]; // Assign values jaggedArray[0][0] = 1; jaggedArray[0][1] = 2; jaggedArray[1][0] = 3; jaggedArray[1][1] = 4; jaggedArray[1][2] = 5; jaggedArray[1][3] = 6; jaggedArray[2][0] = 7; jaggedArray[2][1] = 8; jaggedArray[2][2] = 9; } }
Each element of the main array is itself an array, which can have different lengths.
You must initialize each inner array separately before using it.
int[][] jaggedArray = new int[0][]; // Empty jagged array with no rows
int[][] jaggedArray = new int[1][]; jaggedArray[0] = new int[0]; // One row with zero columns
int[][] jaggedArray = new int[2][]; jaggedArray[0] = new int[1] { 10 }; jaggedArray[1] = new int[3] { 20, 30, 40 };
int[][] jaggedArray = new int[3][]; jaggedArray[0] = new int[] { 1, 2 }; jaggedArray[1] = new int[] { 3, 4, 5 }; jaggedArray[2] = new int[] { 6 };
This program creates a jagged array with 3 rows, each with different lengths. It prints the array, changes one element, then prints it again to show the change.
using System; class Program { static void Main() { // Create a jagged array with 3 rows int[][] jaggedArray = new int[3][]; // Initialize each row with different lengths jaggedArray[0] = new int[] { 1, 2 }; jaggedArray[1] = new int[] { 3, 4, 5, 6 }; jaggedArray[2] = new int[] { 7, 8, 9 }; Console.WriteLine("Jagged array before changes:"); PrintJaggedArray(jaggedArray); // Change one value jaggedArray[1][2] = 50; Console.WriteLine("\nJagged array after changing jaggedArray[1][2] to 50:"); PrintJaggedArray(jaggedArray); } static void PrintJaggedArray(int[][] array) { for (int row = 0; row < array.Length; row++) { Console.Write("Row " + row + ": "); for (int col = 0; col < array[row].Length; col++) { Console.Write(array[row][col] + " "); } Console.WriteLine(); } } }
Accessing an uninitialized inner array will cause a NullReferenceException.
Time complexity to access an element is O(1) because you use two indexes.
Jagged arrays use less memory than rectangular arrays when inner arrays have different lengths.
Use jagged arrays when rows have varying sizes; use rectangular arrays when all rows have the same size.
Jagged arrays are arrays of arrays where inner arrays can have different lengths.
You must initialize each inner array separately before using it.
They are useful to store grouped data with varying sizes efficiently.
Practice
Solution
Step 1: Understand array types in C#
A jagged array is an array whose elements are arrays themselves, allowing different lengths for each inner array.Step 2: Compare with other array types
Unlike two-dimensional arrays, jagged arrays do not require all inner arrays to have the same size.Final Answer:
An array of arrays where inner arrays can have different lengths -> Option AQuick Check:
Jagged array = array of arrays with varying lengths [OK]
- Confusing jagged arrays with 2D arrays
- Thinking all inner arrays must be same length
- Assuming jagged arrays store only one data type
Solution
Step 1: Recall jagged array declaration syntax
Jagged arrays use double square brackets: int[][] to declare an array of arrays.Step 2: Check each option
int[][] jaggedArray = new int[3][]; correctly declares a jagged array with 3 inner arrays uninitialized. int[] jaggedArray = new int[3,3]; is a 2D array, not jagged. int[] jaggedArray = new int[3][]; has wrong type on left side. int jaggedArray[][] = new int[3][]; has invalid syntax.Final Answer:
int[][] jaggedArray = new int[3][]; -> Option AQuick Check:
Use int[][] for jagged arrays [OK]
- Using single brackets for jagged arrays
- Confusing jagged arrays with 2D arrays
- Incorrect syntax like int jaggedArray[][]
int[][] jagged = new int[2][];
jagged[0] = new int[] {1, 2};
jagged[1] = new int[] {3, 4, 5};
Console.WriteLine(jagged[1][2]);Solution
Step 1: Understand jagged array initialization
The jagged array has two inner arrays: jagged[0] = {1, 2} and jagged[1] = {3, 4, 5}.Step 2: Access jagged[1][2]
jagged[1] is {3, 4, 5}, so index 2 is the third element, which is 5.Final Answer:
5 -> Option DQuick Check:
jagged[1][2] = 5 [OK]
- Confusing indices and picking wrong element
- Assuming all inner arrays have same length
- Expecting runtime error for valid index
int[][] jagged = new int[2][];
jagged[0] = new int[2] {1, 2};
Console.WriteLine(jagged[1][0]);Solution
Step 1: Check initialization of inner arrays
jagged[0] is initialized, but jagged[1] is not assigned any array.Step 2: Accessing uninitialized inner array
Accessing jagged[1][0] causes a NullReferenceException because jagged[1] is null.Final Answer:
jagged[1] is not initialized before accessing -> Option BQuick Check:
Initialize all inner arrays before access [OK]
- Assuming inner arrays auto-initialize
- Ignoring NullReferenceException possibility
- Thinking jagged arrays require equal inner lengths
int[][] data where each inner array represents scores of students in different subjects, how would you calculate the total sum of all scores?Solution
Step 1: Understand jagged array structure
Each inner array has varying length representing scores per student.Step 2: Use nested loops to sum all elements
Outer loop iterates each inner array; inner loop sums elements inside each inner array.Step 3: Avoid incorrect approaches
Summing only first inner array or first element misses data; jaggedArray.Sum() won't work directly as it's an array of arrays.Final Answer:
Use nested loops to iterate each inner array and sum all elements -> Option CQuick Check:
Nested loops sum all jagged array elements [OK]
- Summing only one inner array
- Using single loop ignoring inner arrays
- Expecting built-in sum on jagged array
Ready to prove it?
Pass the test and this pattern moves unknown
