Mảng trong C#

Sử dụng mảng trong C# sẽ cho các bạn biết mảng là một tập hợp gồm nhiều phần tử có cùng kiểu dữ liệu. Mỗi phần tử trong mảng được truy cập thông qua chỉ số. Để tìm hiểu rõ hơn về mảng trong C#, mời bạn đọc cùng eLib.VN tham khảo bài viết dưới đây.

Mảng trong C#

1. Mảng trong C# là gì?

Thông thường, mảng là một tập hợp các phần tử có cùng kiểu được lưu trữ gần nhau trong bộ nhớ.

Mảng (Array) trong C# là một đối tượng chứa các phần tử có kiểu dữ liệu giống nhau. Mảng là một cấu trúc dữ liệu nơi lưu trữ các phần tử giống nhau. Với mảng trong C# chúng ta chỉ có thể lưu trữ một tập các phần tử có số lượng phần tử cố định.

Mảng trong C# lưu các phần tử theo chỉ số, chỉ số của phần tử đầu tiên là 0.

2. Tạo một mảng trong C#

Để khai báo một mảng, khai báo loại biến với dấu ngoặc vuông []:

string[] cars;

Ví dụ trên chúng ta đã khai báo một biến chứa một chuỗi các chuỗi.

Để chèn giá trị vào nó, chúng ta có thể sử dụng một mảng bằng chữ - đặt các giá trị trong danh sách được phân tách bằng dấu phẩy, bên trong dấu ngoặc nhọn:

string[] cars = {"Honda", "BMW", "Ford", "Mazda"};

Để tạo một mảng các số nguyên, bạn có thể viết:

int[] myNum = {10, 20, 30, 40};

3. Truy cập các phần tử của một mảng

Bạn truy cập một phần tử mảng bằng cách sử dụng số chỉ mục (index).

Ví dụ:

using System;

namespace Csharp
{
    class ViDuMang
    {
        static void Main(string[] args)
        {
            string[] cars = { "Honda", "BMW", "Ford", "Mazda" };
            Console.WriteLine(cars[0]);
        }
    }
}

Kết quả:

Honda

Lưu ý: Chỉ mục của mảng bắt đầu bằng 0: [0] là phần tử đầu tiên. [1] là phần tử thứ hai, v.v.

4. Thay đổi một phần tử mảng

Để thay đổi giá trị của một phần tử cụ thể, hãy sử dụng số chỉ mục:

Ví dụ:

using System;

namespace Csharp
{
    class ViDuMang
    {
        static void Main(string[] args)
        {
            string[] cars = { "Honda", "BMW", "Ford", "Mazda" };
            cars[0] = "Morning";
            Console.WriteLine(cars[0]);
        }
    }
}

Kết quả:

Morning

5. Độ dài mảng

Để biết có bao nhiêu phần tử một mảng, sử dụng thuộc tính Length :

Ví dụ:

using System;

namespace Csharp
{
    class ViDuMang
    {
        static void Main(string[] args)
        {
            string[] cars = { "Honda", "BMW", "Ford", "Mazda" };
            Console.WriteLine(cars.Length);
        }
    }
}

Kết quả:

4

6. Duyệt các phần tử của mảng

Có 2 các để duyệt các phần tử của mảng:

  • Sử dụng vòng lặp for
  • Sử dụng foreach

Sử dụng vòng lặp for

Bạn có thể lặp qua các phần tử mảng bằng vòng lặp for và sử dụng thuộc tính Length để chỉ định số lần vòng lặp sẽ chạy. Ví dụ:

using System;

namespace Csharp
{
    class ViDuMang
    {
        static void Main(string[] args)
        {
            string[] cars = { "Honda", "BMW", "Ford", "Mazda" };
            for (int i = 0; i < cars.Length; i++)
            {
                Console.WriteLine(cars[i]);
            }
             
        }
    }
}
Kết quả:
Honda
BMW
Ford
Mazda

Sử dụng foreach

using System;

namespace Csharp
{
    class ViDuMang
    {
        static void Main(string[] args)
        {
            string[] cars = { "Honda", "BMW", "Ford", "Mazda" };
            foreach (string i in cars)
            {
                Console.WriteLine(i);
            }
        }
    }
}

Kết quả:

Honda
BMW
Ford
Mazda

So sánh for với foreach

Nếu bạn so sánh vòng lặp for và vòng lặp foreach, bạn sẽ thấy rằng phương thức foreach dễ viết hơn, nó không yêu cầu bộ đếm (sử dụng thuộc tính Length) và nó dễ đọc hơn.

7. Sắp xếp mảng

Có nhiều phương thức mảng có sẵn, ví dụ Sort(), sắp xếp một mảng theo thứ tự bảng chữ cái hoặc theo thứ tự tăng dần, ví dụ:

using System;

namespace Csharp
{
    class ViDuMang
    {
        static void Main(string[] args)
        {
            string[] cars = { "Honda", "BMW", "Ford", "Mazda" };
            Array.Sort(cars);
            for (int i = 0; i < cars.Length; i++)
            {
                Console.WriteLine(cars[i]);
            }
             
        }
    }
}

Kết quả:

BMW
Ford
Honda
Mazda

8. System.Linq Namespace

Có nhiều phương thức xử lý mảng hữu ích khác, chẳng hạn như Min, Max và Sum, có thể được tìm thấy trong System.Linq Namespace, ví dụ:

using System;
using System.Linq;

namespace Csharp
{
    class ViDuMang
    {
        static void Main(string[] args)
        {
            int[] myNumbers = { 5, 1, 8, 9 };
            // trả về giá trị lớn nhất
            Console.WriteLine("Gia tri lon nhat:" + myNumbers.Max());
            // trả về giá trị nhỏ nhất
            Console.WriteLine("Gia tri nho nhat:" + myNumbers.Min());
            // trả về tổng các giá trị
            Console.WriteLine("Tong gia tri:" + myNumbers.Sum()); 
        }
    }
}

Kết quả:

Gia tri lon nhat:9
Gia tri nho nhat:1
Tong gia tri:23

9. Các cách khác để tạo một mảng trong C#

Trong C#, có nhiều cách khác nhau để tạo một mảng:

// tạo một mảng có độ dài 4, thêm các phần tử sau tạo
string[] cars = new string[4];

// tạo một mảng có độ dài 4, thêm các phần tử ngay khi tạo
string[] cars = new string[4] { "Honda", "BMW", "Ford", "Mazda" };

// tạo một mảng không cần chỉ định số phần tử cụ thể
string[] cars = new string[] { "Honda", "BMW", "Ford", "Mazda" };

// tạo một mảng không cần chỉ định số phần tử cụ thể và không cần dùng từ khóa new
string[] cars = { "Honda", "BMW", "Ford", "Mazda" };

Bạn có thể chọn bất kỳ cách khởi tạo nào. Trong hướng dẫn của chúng tôi, chúng tôi sẽ thường sử dụng tùy chọn cuối cùng, vì nó nhanh hơn và dễ đọc hơn.

Một trường hợp khác, nếu bạn khai báo một mảng và khởi tạo nó sau, bạn phải sử dụng từ khóa new:

// khai báo một mảng
string[] cars;

// thêm giá trị, sử dụng từ khóa new
cars = new string[] { "Honda", "BMW", "Ford" };

// nếu không dùng new sẽ bị lỗi
cars = { "Honda", "BMW", "Ford"};

Trên đây là bài viết của eLib.VN về Mảng trong C#. Hy vọng sau bài viết, bạn đọc nắm được cấu trúc, cách khai báo và khởi tạo của mảng một chiều. Chúc các bạn thành công!

Ngày:31/10/2020 Chia sẻ bởi:Thi

CÓ THỂ BẠN QUAN TÂM