Cách nối hai mảng trong C# bằng hai cách khác nhau

Trong bài viết này mình sẽ hướng dẫn các bạn cách nối hai mảng trong C#. Đây là dạng bài tập thường gặp khi bắt đầu học mảng một chiều, vậy nên các bạn cần có kiến thức về nó đã nhé.

Mình sẽ thực hiện hai chương trình để nối hai mảng với nhau trong C#. Chương trình đầu tiên sử dụng cách thủ công, chương trình thứ hai sử dụng phương thức Copy() trong Array.

Nối hai chuỗi sử dụng cách thủ công trong C#

Để nối hai chuỗi sử dụng cách thủ công ta cần khai báo và khởi tạo hai mảng array1 và array2. Cần thêm một mảng result để lưu kết quả nối giữa hai mảng, mảng này có độ dài bảng hai mảng kia cộng lại.

Sử dụng vòng lặp foreach() để gán lần lượt các phần tử trong mảng array1, array2 vào mảng result. Sau đó in kết quả ra màn hình.

Bài viết này được đăng tại [kiso.vn]

//sử dụng vòng lặp foreach để lặp từng phần tử trong mảng,
//sau đó gán từng phần tử trong mảng array1 vào mảng result
foreach (int element in array1)
{
    result[pos] = element;
    pos++;
}
//tương tự như vậy cho mảng thứ 2
foreach (int element in array2)
{
    result[pos] = element;
    pos++;
}

Full code:

using System;

namespace BaiTapCSharp
{
    class Program
    {
        static void Main(string[] args)
        {
            //khai báo và khởi tạo giá trị cho các phần tử của hai mảng array1 và array2
            int[] array1 = { 1, 2, 3 };
            int[] array2 = { 4, 5, 6 };
            //biến length sẽ bằng độ dài của hai mảng cộng lại
            int length = array1.Length + array2.Length;
            //Bây giờ khai báo thêm một mảng mới result để lưu trữ hai mảng cần nối, với độ dài bằng length
            int[] result = new int[length];
            int pos = 0;
            //Hiển thị các phần tử trong mảng thứ nhất
            Console.Write("n Cac phan tu mang thu nhat: ");
            for (int i = 0; i < array1.Length; i++)
            {
                Console.Write(array1[i] + "  ");
            }
            //hiển thị các phần tử trong mảng thứ hai
            Console.Write("nn Cac phan tu mang thu hai: ");
            for (int i = 0; i < array2.Length; i++)
            {
                Console.Write(array2[i] + "  ");
            }
            //sử dụng vòng lặp foreach để lặp từng phần tử trong mảng,
            //sau đó gán từng phần tử trong mảng array1 vào mảng result
            foreach (int element in array1)
            {
                result[pos] = element;
                pos++;
            }
            //tương tự như vậy cho mảng thứ 2
            foreach (int element in array2)
            {
                result[pos] = element;
                pos++;
            }
            //sử dụng vòng lặp for để in các phần tử trong mảng result sau khi nối ra màn hình
            Console.Write("nn Cac phan tu sau khi noi su dung cach thu cong: ");
            for (int i = 0; i < result.Length; i++)
            {
                Console.Write(result[i] + "  ");
            }
            Console.WriteLine("nn-----Chuong trinh nay duoc dang tai Kiso.vn---");
        }
    }
}

Kết quả:

bai44 02 png

Nối hai chuỗi sử dụng phương thức Array.Copy() trong C#

Để đơn giản hơn thay vì phải sử dụng vòng lặp foreach() để lặp từng phần tử rồi gán vào mảng result. Ta sử dụng phương thức Array.Copy() để sao chép các phần tử từ mảng array1, array2 vào mảng result.

//sao chép các phần tử trong mảng array1 vào mảng result
System.Array.Copy(array1, 0, result, 0, aLen);
//tương tự như vậy sao chép các phần tử trong mảng array2 vào mảng result
System.Array.Copy(array2, 0, result, aLen, bLen);

Full code:

using System;

namespace BaiTapCSharp
{
    class Program
    {
        static void Main(string[] args)
        {
            //khai báo và khởi tạo cho hai mảng array1 và array2
            int[] array1 = { 1, 2, 3 };
            int[] array2 = { 4, 5, 6 };
            //Hiển thị các phần tử trong mảng thứ nhất
            Console.Write("n Cac phan tu mang thu nhat: ");
            for (int i = 0; i < array1.Length; i++)
            {
                Console.Write(array1[i] + "  ");
            }
            //hiển thị các phần tử trong mảng thứ hai
            Console.Write("nn Cac phan tu mang thu hai: ");
            for (int i = 0; i < array2.Length; i++)
            {
                Console.Write(array2[i] + "  ");
            }
            //aLen sẽ bằng độ dài của mảng array1 và bLen sẽ bằng độ dài của mảng array2
            int aLen = array1.Length;
            int bLen = array2.Length;
            //khai báo một mảng result với độ dài bằng aLen + bLen để lưu trữ các phần tử của array1 và array2
            int[] result = new int[aLen + bLen];
            //sử dụng phương thức Copy() trong Array để nối hai mảng, cụ thể như sau
            //sao chép các phần tử trong mảng array1 vào mảng result
            System.Array.Copy(array1, 0, result, 0, aLen);
            //tương tự như vậy sao chép các phần tử trong mảng array2 vào mảng result
            System.Array.Copy(array2, 0, result, aLen, bLen);
            //sử dụng vòng lặp for để in các phần tử trong mảng result sau khi nối ra màn hình
            Console.Write("nn Cac phan tu sau khi noi su dung phuong thuc Copy(): ");
            for (int i = 0; i < result.Length; i++)
            {
                Console.Write(result[i] + "  ");
            }

            Console.WriteLine("nn-----Chuong trinh nay duoc dang tai Kiso.vn---");
        }
    }
}

Kết quả:

bai44 01 png

Như vậy là chúng ta đã thực hiện xong chương trình nối hai mảng trong C#. Đây là các bài tập cơ bản, vì vậy hãy luyện tập thật nhiều để hiểu rõ về nó nhé, chúc các bạn thành công !!!

Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *