The document provides a comprehensive overview of arrays in C#, including their definition, types (single-dimensional, multidimensional, and jagged), and advantages and disadvantages. It explains how to declare, initialize, and access array elements, as well as the methods available for manipulating arrays. Additionally, it highlights the use of LINQ methods and the structure of multidimensional and jagged arrays.
Download as PPTX, PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
3 views
C#.net Arrays
The document provides a comprehensive overview of arrays in C#, including their definition, types (single-dimensional, multidimensional, and jagged), and advantages and disadvantages. It explains how to declare, initialize, and access array elements, as well as the methods available for manipulating arrays. Additionally, it highlights the use of LINQ methods and the structure of multidimensional and jagged arrays.
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 35
ARRAYS
• array in C# is a group of similar types of
elements that have contiguous memory location. • In C#, array is an object of base type System.Array. • In C#, array index starts from 0. • A variable is used to store a literal value, whereas an array is used to store multiple literal values. • An array is the data structure that stores a fixed number of literal values (elements) of the same data type. • Array elements are stored contiguously in the memory. • Advantages of C# Array – Code Optimization (less code) – Random Access – Easy to traverse data – Easy to manipulate data – Easy to sort data etc. • Disadvantages of C# Array – Fixed size C# Array Types
• There are 3 types of arrays in C#
programming: – Single Dimensional Array – Multidimensional Array – Jagged Array • C# provides three different types of arrays. These are: • Single Dimensional Array: A single pair of the square bracket is used to represent a single row (hence 1-D) of values under a single name. Creating a 1-D Array, • int[] ar = new int[6]; Multidimensional Array: is also called rectangular arrays, and they can be 2D, 3D, or multi-D arrays, and it can be visualized in row- column format, i.e., matrix format. Creating a Multi-dimensional array,
int[,] ar = new int[2, 4];
Or int[,,] ar = new int[2, 3, 4]; Jagged Array: These types of arrays are mainly called "array of arrays". The element size differs in the case of jagged arrays. Creating a Jagged array, int[][,] ar = new int[3][,];
2d array Int[][] a=new int[SIZE][]; C# Single Dimensional Array
• To create single dimensional array, you need
to use square brackets [] after the type. int[] arr = new int[5];//creating array You cannot place square brackets after the identifier. int arr[] = new int[5];//compile time error Declaration and Initialization at same time
• There are 3 ways to initialize array at the time
of declaration. • int[] arr = new int[5]{ 10, 20, 30, 40, 50 }; • We can omit the size of array. • int[] arr = new int[]{ 10, 20, 30, 40, 50 }; • We can omit the new operator also. • int[] arr = { 10, 20, 30, 40, 50 }; • Arrays type variables can be declared using var without square brackets. Example: Array Declaration using var var evenNums = new int[]{ 2, 4, 6, 8, 10}; var cities = new string[]{ "Mumbai", "London", "New York" }; • If you are adding array elements at the time of declaration, then size is optional //must specify the size int[] evenNums = new int[]; //number of elements must be equal to the specified size int[] evenNums = new int[5] { 2, 4 }; //cannot use var with array initializer var evenNums = { 2, 4, 6, 8, 10}; Accessing Array Elements Array elements can be accessed using an index. An index is a number associated with each array element, starting with index 0 and ending with array size - 1. int[] evenNums = new int[5]; evenNums[0] = 2; evenNums[1] = 4; //evenNums[6] = 12; //Throws run-time exception IndexOutOfRange Console.WriteLine(evenNums[0]); //prints 2 Console.WriteLine(evenNums[1]); //prints 4 Accessing Array using for Loop Use the for loop to access array elements. Use the length property of an array in conditional expression of the for loop. int[] evenNums = { 2, 4, 6, 8, 10 }; for(int i = 0; i < evenNums.Length; i++) Console.WriteLine(evenNums[i]); for(int i = 0; i < evenNums.Length; i++) evenNums[i] = evenNums[i] + 10; // update the value of each element by 10 Accessing Array using foreach Loop
Use foreach loop to read values of an array
elements without using index. int[] evenNums = { 2, 4, 6, 8, 10}; string[] cities = { "Mumbai", "London", "New York" }; foreach(var item in evenNums) Console.WriteLine(item); foreach(var city in cities) Console.WriteLine(city); • All the arrays in C# are derived from an abstract base class System.Array. • The Array class implements the IEnumerable interface, so you can LINQ extension methods such as Max(), Min(), Sum(), reverse(), etc. int[] nums = new int[5]{ 10, 15, 16, 8, 6 }; nums.Max(); // returns 16 nums.Min(); // returns 6 nums.Sum(); // returns 55 nums.Average(); // returns 55 Array.Sort(nums); Array.BinarySearch(nums,k); The System.Array class also includes methods for creating, manipulating, searching, and sorting arrays. Example: Array Methods int[] a = new int[5]{ 10, 15, 16, 8, 6 }; Array.Sort(a); // sorts array Array.Reverse(a); // sorts array in descending order Array.ForEach(a, n => Console.WriteLine(n)); // iterates array Array.BinarySearch(a, 5);// binary search • can count the total number of elements or some specific elements in the array using Count() method. string[] animals = { "Cat", "Alligator", "fox", "donkey", "Cat", "alligator" }; var totalCats = animals.Count(s => s == "Cat");
var t = nums.Count(n => n%2==0); C# Multidimensional Arrays
• The multidimensional array is also known as
rectangular arrays in C#. • It can be two dimensional or three dimensional. • The data is stored in tabular form (row * column) which is also known as matrix. • To create multidimensional array, we need to use comma inside the square brackets. For example: • int[,] arr=new int[3,3];// declaration of 2D array • int[,,] arr=new int[3,3,3];// declaration of 3D array • C# supports multidimensional arrays up to 32 dimensions. • The multidimensional array can be declared by adding commas in the square brackets. • For example, [,] declares two-dimensional array, [, ,] declares three-dimensional array, [, , ,] declares four-dimensional array, and so on. So, in a multidimensional array, no of commas = No of Dimensions + 1. • int[,] arr2d = new int[3,2]{ {1, 2}, {3, 4}, {5, 6} }; // or int[,] arr2d = { {1, 2}, {3, 4}, {5, 6} }; int[,] arr2d = new int[3,2]{ {1, 2}, {3, 4}, {5, 6} }; arr2d[0, 0]; //returns 1 arr2d[0, 1]; //returns 2 arr2d[1, 0]; //returns 3 arr2d[1, 1]; //returns 4 arr2d[2, 0]; //returns 5 arr2d[2, 1]; //returns 6 int[, ,] arr3d1 = new int[1, 2, 2]{ { { 1, 2}, { 3, 4} } }; int[, ,] arr3d2 = new int[2, 2, 2]{ { {1, 2}, {3, 4} }, { {5, 6}, {7, 8} } }; int[, ,] arr3d3 = new int[2, 2, 3]{ { { 1, 2, 3}, {4, 5, 6} }, { { 7, 8, 9}, {10, 11, 12} } }; arr3d2[0, 0, 0]; // returns 1 arr3d2[0, 0, 1]; // returns 2 arr3d2[0, 1, 0]; // returns 3 arr3d2[0, 1, 1]; // returns 4 arr3d2[1, 0, 0]; // returns 5 arr3d2[1, 0, 1]; // returns 6 arr3d2[1, 1, 0]; // returns 7 arr3d2[1, 1, 1]; // returns 8 Jagged array • A jagged array is an array of array. Jagged arrays store arrays instead of literal values. • A jagged array is initialized with two square brackets [][]. – The first bracket specifies the size of an array, and the second bracket specifies the dimensions of the array which is going to be stored. • Example: Jagged Arrays • int[][] jArray1 = new int[2][]; // can include two single-dimensional arrays • int[][,] jArray2 = new int[3][,]; // can include three two-dimensional arrays • int[][] X = new int[2][]; • X[0] = new int[3]; • X[0][0]=1; • X[0][1]=11; • X[0][2]=31;
• X[1] = new int[4]{4, 5, 6, 7 };
• The following jagged array stores two-dimensional arrays where the second bracket [,] indicates the two-dimensional array. • int[][,] jArray = new int[2][,]; • jArray[0] = new int[3, 2] { { 1, 2 }, { 3, 4 }, { 5, 6 } }; • jArray[1] = new int[2, 2] { { 7, 8 }, { 9, 10 } }; jArray[0][1, 1]; //returns 4 • jArray[1][1, 0]; //returns 9 • jArray[1][1, 1]; //returns 10 If you add one more bracket then it will be array of array of array. int[][][] intJaggedArray = new int[2][][] { new int[2][] { new int[3] { 1, 2, 3}, new int[2] { 4, 5} }, new int[1][] { new int[3] { 7, 8, 9} } }; Console.WriteLine(intJaggedArray[0][0][0]); // 1 Console.WriteLine(intJaggedArray[0][1] [1]); // 5 Console.WriteLine(intJaggedArray[1] [0][2]); // 9