ภาพรวม
รวมอาร์เรย์สองตัวโดยใช้ List<T>.AddRange() หรือ LINQ Concat()
วิธี 1: ใช้ List.AddRange (ตัวอย่างต้นฉบับ)
int[] arr1 = { 37, 45, 65 };
int[] arr2 = { 70, 89, 118 };
var list = new List();
list.AddRange(arr1);
list.AddRange(arr2);
int[] combined = list.ToArray();
วิธี 2: ใช้ LINQ Concat (แนะนำ - สั้นกว่า)
int[] combined = arr1.Concat(arr2).ToArray(); // ต้อง using System.Linq;
ตัวอย่างโค้ดเต็ม (วิธี List.AddRange)
using System;
using System.Collections.Generic;
class Demo
{
static void Main()
{
int[] arr1 = { 37, 45, 65 };
int[] arr2 = { 70, 89, 118 };
Console.WriteLine("Array 1..."); foreach (int e in arr1) Console.WriteLine(e);
Console.WriteLine("Array 2..."); foreach (int e in arr2) Console.WriteLine(e);
var myList = new List();
myList.AddRange(arr1); myList.AddRange(arr2);
int[] arr3 = myList.ToArray();
Console.WriteLine("Combined array elements.."); foreach (int r in arr3) Console.WriteLine(r);
}
}
ผลลัพธ์
Array 1... 37 45 65 Array 2... 70 89 118 Combined array elements.. 37 45 65 70 89 118
เปรียบเทียบ
| วิธี | ข้อดี | ข้อเสีย |
|---|---|---|
| List.AddRange + ToArray | เข้าใจง่าย ควบคุมขั้นตอนได้ | สร้าง List ชั่วคราว ใช้หน่วยความจำเพิ่ม |
| LINQ Concat + ToArray | กระชับ Lazy evaluation (ไม่คำนวณจนumerate) | ต้องรู้ LINQ |
| Array.Copy (manual) | ควบคุมหน่วยความจำเต็มที่ | โค้ดยาว ต้องคำนวณขนาดเอง |