Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Chèn nhiều phần tử vào List cùng lúc (InsertRange) trong C#


Giới thiệu

Phương thức InsertRange(int index, IEnumerable<T> collection) chèn toàn bộ các phần tử của một tập hợp vào List tại vị trí index. Các phần tử hiện tại từ index trở đi bị dịch chuyển.

Ví dụ cơ bản

List arr1 = new List { 10, 20, 30, 40, 50 };
int[] arr2 = { 60, 70, 80, 90 };
arr1.InsertRange(5, arr2); // Chèn tại cuối (index = Count)

Ví dụ hoàn chỉnh

using System;
using System.Collections.Generic;

public class Demo
{
    public static void Main()
    {
        List arr1 = new List { 10, 20, 30, 40, 50 };
        Console.WriteLine("Initial List ...");
        foreach (int i in arr1) Console.WriteLine(i);

        int[] arr2 = { 60, 70, 80, 90 };
        arr1.InsertRange(5, arr2);

        Console.WriteLine("After adding elements ...");
        foreach (int i in arr1) Console.WriteLine(i);
    }
}

Kết quả

Initial List ...
10
20
30
40
50
After adding elements ...
10
20
30
40
50
60
70
80
90

Các trường hợp InsertRange

  • index = 0: Chèn vào đầu (prepend).
  • index = Count: Chèn vào cuối (tương đương AddRange).
  • 0 < index < Count: Chèn vào giữa.

So sánh AddRange vs InsertRange

Phương thứcVị tríHiệu suất
AddRangeCuối listO(n) - chỉ copy
InsertRangeVị trí bất kỳO(n + m) - phải shift phần tử

Lưu ý

  • Tham số collection có thể là bất kỳ IEnumerable<T>: array, List, array, v.v.
  • Ném ArgumentOutOfRangeException nếu index < 0 hoặc > Count.
  • Ném ArgumentNullException nếu collection là null.
  • Với List lớn và chèn thường xuyên ở đầu/giữa, cân nhắc LinkedList<T>.