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 [free tuts .net]
//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("\n\n 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("\n\n 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("\n\n-----Chuong trinh nay duoc dang tai Freetuts.net---");
}
}
}
Kết quả:

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("\n\n 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("\n\n 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("\n\n-----Chuong trinh nay duoc dang tai Freetuts.net---");
}
}
}
Kết quả:

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 !!!

Các kiểu dữ liệu trong C ( int - float - double - char ...)
Thuật toán tìm ước chung lớn nhất trong C/C++
Cấu trúc lệnh switch case trong C++ (có bài tập thực hành)
ComboBox - ListBox trong lập trình C# winforms
Random trong Python: Tạo số random ngẫu nhiên
Lệnh cin và cout trong C++
Cách khai báo biến trong PHP, các loại biến thường gặp
Download và cài đặt Vertrigo Server
Thẻ li trong HTML
Thẻ article trong HTML5
Cấu trúc HTML5: Cách tạo template HTML5 đầu tiên
Cách dùng thẻ img trong HTML và các thuộc tính của img
Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng