相关文章推荐
睿智的海龟  ·  HttpContext.Session ...·  1 年前    · 
独立的奔马  ·  GitHub 1W star ...·  1 年前    · 
打酱油的课本  ·  shell调用exe文件-掘金·  1 年前    · 
public:
 void AddRange(System::Collections::Generic::IEnumerable<T> ^ collection);
public void AddRange (System.Collections.Generic.IEnumerable<T> collection);
member this.AddRange : seq<'T> -> unit
Public Sub AddRange (collection As IEnumerable(Of T))

以下示例演示 AddRange 了 对范围执行操作的 类的 List<T> 方法和各种其他方法。 创建字符串数组并将其传递给构造函数,用数组的元素填充列表。 调用 AddRange 方法时,列表作为其参数。 结果是将列表的当前元素添加到列表的末尾,从而复制所有元素。

using namespace System; using namespace System::Collections::Generic; void main() array<String^>^ input = { "Brachiosaurus", "Amargasaurus", "Mamenchisaurus" }; List<String^>^ dinosaurs = gcnew List<String^>((IEnumerable<String^>^) input); Console::WriteLine("\nCapacity: {0}", dinosaurs->Capacity); Console::WriteLine(); for each(String^ dinosaur in dinosaurs ) Console::WriteLine(dinosaur); Console::WriteLine("\nAddRange(dinosaurs)"); dinosaurs->AddRange(dinosaurs); Console::WriteLine(); for each(String^ dinosaur in dinosaurs ) Console::WriteLine(dinosaur); Console::WriteLine("\nRemoveRange(2, 2)"); dinosaurs->RemoveRange(2, 2); Console::WriteLine(); for each(String^ dinosaur in dinosaurs ) Console::WriteLine(dinosaur); input = gcnew array<String^> { "Tyrannosaurus", "Deinonychus", "Velociraptor"}; Console::WriteLine("\nInsertRange(3, (IEnumerable<String^>^) input)"); dinosaurs->InsertRange(3, (IEnumerable<String^>^) input); Console::WriteLine(); for each(String^ dinosaur in dinosaurs ) Console::WriteLine(dinosaur); Console::WriteLine("\noutput = dinosaurs->GetRange(2, 3)->ToArray()"); array<String^>^ output = dinosaurs->GetRange(2, 3)->ToArray(); Console::WriteLine(); for each(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, (IEnumerable<String^>^) input) Brachiosaurus Amargasaurus Amargasaurus Tyrannosaurus Deinonychus Velociraptor Mamenchisaurus output = dinosaurs->GetRange(2, 3)->ToArray() Amargasaurus Tyrannosaurus Deinonychus 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 Imports System.Collections.Generic Public Class Example Public Shared Sub Main() Dim input() As String = { "Brachiosaurus", _ "Amargasaurus", _ "Mamenchisaurus" } Dim dinosaurs As New List(Of String)(input) Console.WriteLine(vbLf & "Capacity: {0}", dinosaurs.Capacity) Console.WriteLine() For Each dinosaur As String In dinosaurs Console.WriteLine(dinosaur) Console.WriteLine(vbLf & "AddRange(dinosaurs)") dinosaurs.AddRange(dinosaurs) Console.WriteLine() For Each dinosaur As String In dinosaurs Console.WriteLine(dinosaur) Console.WriteLine(vbLf & "RemoveRange(2, 2)") dinosaurs.RemoveRange(2, 2) Console.WriteLine() For Each dinosaur As String In dinosaurs Console.WriteLine(dinosaur) input = New String() { "Tyrannosaurus", _ "Deinonychus", _ "Velociraptor" } Console.WriteLine(vbLf & "InsertRange(3, input)") dinosaurs.InsertRange(3, input) Console.WriteLine() For Each dinosaur As String In dinosaurs Console.WriteLine(dinosaur) Console.WriteLine(vbLf & "output = dinosaurs.GetRange(2, 3).ToArray") Dim output() As String = dinosaurs.GetRange(2, 3).ToArray() Console.WriteLine() For Each dinosaur As String In output Console.WriteLine(dinosaur) End Sub End Class ' 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> ,并在添加新元素之前将现有元素复制到新数组。

List<T> 如果 可以在不增加 Capacity 的情况下容纳新元素,则此方法是 O ( n ) 操作,其中 n 是要添加的元素数。 如果需要增加容量以适应新元素,此方法将变为 O ( n + m ) 运算,其中 n 是要添加的元素数, m Count