Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

รวมสองอาร์เรย์ใน C# (Combine Arrays)


ภาพรวม

รวมอาร์เรย์สองตัวโดยใช้ 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)ควบคุมหน่วยความจำเต็มที่โค้ดยาว ต้องคำนวณขนาดเอง