List<T>.AddRange(IEnumerable<T>) 方法

定義

將特定集合的項目加入至 List<T> 的結尾。

C#
public void AddRange (System.Collections.Generic.IEnumerable<T> collection);

參數

collection
IEnumerable<T>

集合,其項目應加入至 List<T> 的結尾。 集合本身不可為 null,但如果類型 T 是參考類型,則其可以包含為 null 的項目。

例外狀況

collectionnull

範例

下列範例示範 AddRange 類別的 方法和各種其他方法,這些方法 List<T> 會處理範圍。 字串的陣列會建立並傳遞至建構函式,以數位的元素填入清單。 系統會 AddRange 呼叫 方法,並將清單當做其自變數。 結果是清單的目前元素會新增至清單結尾,並複製所有元素。

C#
using System;
using System.Collections.Generic;

public class Example
{
    public static void Main()
    {
        string[] input = { "Brachiosaurus",
                           "Amargasaurus",
                           "Mamenchisaurus" };

        List<string> dinosaurs = new List<string>(input);

        Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity);

        Console.WriteLine();
        foreach( string dinosaur in dinosaurs )
        {
            Console.WriteLine(dinosaur);
        }

        Console.WriteLine("\nAddRange(dinosaurs)");
        dinosaurs.AddRange(dinosaurs);

        Console.WriteLine();
        foreach( string dinosaur in dinosaurs )
        {
            Console.WriteLine(dinosaur);
        }

        Console.WriteLine("\nRemoveRange(2, 2)");
        dinosaurs.RemoveRange(2, 2);

        Console.WriteLine();
        foreach( string dinosaur in dinosaurs )
        {
            Console.WriteLine(dinosaur);
        }

        input = new string[] { "Tyrannosaurus",
                               "Deinonychus",
                               "Velociraptor"};

        Console.WriteLine("\nInsertRange(3, input)");
        dinosaurs.InsertRange(3, input);

        Console.WriteLine();
        foreach( string dinosaur in dinosaurs )
        {
            Console.WriteLine(dinosaur);
        }

        Console.WriteLine("\noutput = dinosaurs.GetRange(2, 3).ToArray()");
        string[] output = dinosaurs.GetRange(2, 3).ToArray();

        Console.WriteLine();
        foreach( string dinosaur in output )
        {
            Console.WriteLine(dinosaur);
        }
    }
}

/* This code example produces the following output:

Capacity: 3

Brachiosaurus
Amargasaurus
Mamenchisaurus

AddRange(dinosaurs)

Brachiosaurus
Amargasaurus
Mamenchisaurus
Brachiosaurus
Amargasaurus
Mamenchisaurus

RemoveRange(2, 2)

Brachiosaurus
Amargasaurus
Amargasaurus
Mamenchisaurus

InsertRange(3, input)

Brachiosaurus
Amargasaurus
Amargasaurus
Tyrannosaurus
Deinonychus
Velociraptor
Mamenchisaurus

output = dinosaurs.GetRange(2, 3).ToArray()

Amargasaurus
Tyrannosaurus
Deinonychus
 */

備註

集合中的項目順序會保留在 中 List<T>

如果新的 Count (目前 Count 加上集合大小) 大於 Capacity,則會藉由自動重新配置內部數位以容納新元素來增加的容量 List<T> ,而現有的元素會在新增專案之前複製到新的數位。

如果 可以容納新元素而不增加 Capacity,這個方法是 o (n) 作業,其中 n 是要加入的項目數目。List<T> 如果需要增加容量以容納新的元素,這個方法會變成 O (nm) 作業,其中 n + 是要加入的項目數目,而 mCount

適用於

產品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

另請參閱