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