MẢNG

1.     Mảng (array)

Mng (array) trong c# là tp hp các phn t cùng kiu đưc sp xếp lin k nhau trong b nh

csharp array PNG

Hình 1.15. Mô hình một mảng

T hình trên ta có th hình dung rõ hơn v mng trong c#. Nó là tp các phn t lin k nhau trong b nh và đưc đánh theo ch s (index) t 0 đến s phn t mng cui.

Mun truy xut đến phn t nào đó ch cn gi tên mng và truyn vào index. Ví d array[0] truy xut đến phn t đu tiên, array[1] truy xut đến phn t th 2...

2.     Ưu điểm và nhược điểm của mảng

Ưu điểm

·       Ti ưu hóa mã code.

·       Truy cp phn t ngu nhiêu

·       D dàng duyt qua các phn t

·       D dàng thao tác đến phn t

·       D dáng sp xếp phn t

Nhược điểm

·       Kích thưc ca mng là c đnh

3.     Các loại mảng

Trong c# có 3 loi mng, đó là:

·       Mng mt chiu (Single Dimensional Array)

·       Mng đa chiu (Multidimensional Array)

·       Mng ca mng (Jagged Array)

Mảng một chiều (Single Dimensional Array)

Đ to mng mt chiu, chúng ta ch cn s dng du ngoc vuông [] sau kiu d liu.

Ví d

1

int[] arr = new int[10];

Chúng ta hãy xem mt ví d đơn gin v mng trong C#, đây chúng ta s khai báo, khi to giá tr và duyt qua tng phn t ca mng.

Ví d

using System;

 

namespace ConsoleApp2

{

    class Program

    {

        static void Main(string[] args)

        {

            int[] arr = new int[5]; //tạo mảng

            arr[0] = 5;  // khỏi tạo giá trị cho phần tử thứ nhất

            arr[2] = 10;

            arr[4] = 3;

 

            // Duyệt qua từng phần tử mảng

            for (int i = 0; i < arr.Length; i++)

            {

                Console.WriteLine("Gia tri phan tu thu " + (i + 1) + " = " + arr[i]);

            }

            Console.ReadKey();

        }

    }

}

Và kết qu sau khi thc thi đon code trên:

csharp array ex1 PNG

Hình 1.16. Minh họa dùng mảng một chiều

Khai báo và khởi tạo cùng một lúc, có 3 cách:

- Khi to mng cùng lúc vi khai báo

int[] arr = new int[5]{ 2, 3, 1, 4, 3};

- Chúng ta có th b qua kích thưc ca mng.

int[] arr = new int[]{ 2, 3, 1, 4, 3};

- Chúng ta cũng có th b qua toán t new.

int[] arr = { 2, 3, 1, 4, 3};

Mảng đa chiều (Multidimensional Array)

Mng đa chiu còn đưc gi là mng hình ch nht trong C#. Nó có th là hai chiu hoc ba chiu. D liu đưc lưu tri dng bng (ct * hàng) còn đưc gi là ma trn.

Đ to mng đa chiu, chúng ta cn s dng du phy bên trong du ngoc vuông.

1

2

int[,] arr=new int[2,2];//Khai bao mang 2 chieu

int[,,] arr=new int[2,2,2];//Khai bao mang 3 chieu

Ví d

using System;

 

namespace ConsoleApp2

{

    class Program

    {

        static void Main(string[] args)

        {

            int[,] arr = new int[3, 3];//khai bao mang 2 chieu 

            arr[0, 1] = 2;//khoi tao gia tri

            arr[1, 2] = 3;

            arr[2, 0] = 4;

 

            //Duyet qua tung phan tu mang

            for (int i = 0; i < 3; i++)

            {

                for (int j = 0; j < 3; j++)

                {

                    Console.Write(arr[i, j] + " ");

                }

                Console.WriteLine();

            }

            Console.ReadKey();

        }

    }

}

Và kết qu sau khi thc thi đon code trên:

csharp array ex2 PNG

Khai báo và khởi tạo cùng một lúc, có 3 cách:

- Khi to mng đa chiu cùng lúc vi khai báo

int[,] arr = new int[3,3]= { { 1, 1, 1 }, { 2, 2, 2 }, { 3, 3, 3 } };

- Chúng ta có th b qua kích thưc mng

int[,] arr = new int[,]= { { 1, 1, 1 }, { 2, 2, 2 }, { 3, 3, 3 } };

- Chúng ta cũng có th b qua toán t new

int[,] arr = { { 1, 1, 1 }, { 2, 2, 2 }, {3, 3, 3 } };

Mảng của mảng (Jagged Array)

Trong C#, Jagged Array còn đưc gi là "mng mng" vì các phn t ca nó là mng. Kích thưc phn t ca Jagged Array có th khác nhau.

Khai báo jagged array:

Chúng ta hãy xem mt ví d đ khai báo Jagged Array có hai phn t:

int[][] arr = new int[2][];

Khởi tạo giá trị jagged array:

Chúng ta s khi to giá tr các phn t ca mng trên như sau:

Cách 1: 

1

2

arr[0] = new int[3]; 

arr[1] = new int[4];

Cách 2:

1

2

arr[0] = new int[3] { 2, 3, 5 }; 

arr[1] = new int[4] {23, 5, 7, 9 };

Cách 3:

1

2

arr[0] = new int[] { 2, 3, 5 };        

arr[1] = new int[] { 23, 5, 7, 9 };

Khởi tạo giá trị cho phần tử trong lúc khai báo:

int[][] arr = new int[3][]{ 

        new int[] { 3, 4, 6, 8, 10}, 

        new int[] { 2, 4, 9, 7, 10, 5, 11 }, 

        new int[] { 2 } 

        };

Ví d

using System;

namespace ConsoleApp3

{

    class Program

    {

        static void Main(string[] args)

        {

            int[][] arr = new int[2][];// Khai bao mang 

            // khoi tao gia tri cho mang

            arr[0] = new int[] { 3, 4, 5, 1, 4 };        

            arr[1] = new int[] { 1, 2, 3, 5, 7, 9 };

 

            for (int i = 0; i < arr.Length; i++)

            {

                Console.WriteLine("Gia tri phan tu thu " + (i + 1));

                for (int j = 0; j < arr[i].Length; j++)

                {

                    System.Console.Write(arr[i][j] + " ");

                }

                System.Console.WriteLine();

            }

            Console.ReadKey();

        }

    }

}

Và kết qu sau khi thc thi đon code trên:

csharp array ex3 PNG