命名空间: System.Collections.Generic
程序集: mscorlib(在 mscorlib.dll 中)
语法
C#
C++
F#
VB
public void AddRange(
IEnumerable<T>collection
)
参数
collection
类型:System.Collections.Generic.IEnumerable<T>
一个集合,其元素应被添加到 List<T>腔销 的末尾。 集碧圆咐合自身不能为 null,但它可以包含为 null 的元素(如果类型 T 为引用类型)。
异常
异常
条件
ArgumentNullException
collection 为 null。
备注
List<T>中会保留集合中元素的悔纯顺序。
如果新的 Count(当前 Count 加上集合的大小)大于 Capacity,则会通过自动重新分配内部数组增大 List<T>的容量以容纳新元素,并在添加新元素之前将现有元素复制到新数组中。
如果 List<T>可以在不增加 Capacity 的情况下容纳新元素,则此方法的运算复杂度是 O(n),其中 n 是要添加的元素数。 如果需要增加此容量以容纳新元素,则此方法的运算复杂度变为 O(n + m),其中 n 是要添加的元素数,m 是 Count。
示例
下面的代码示例演示 AddRange 方法和 List<T>类中对范围进行 *** 作的各个其他方法。 该示例创建一个字符串数组并将它传递给构造函数,使用该数组的元素填充列表。 AddRange 被调用,并使用该列表作为其参数。 结果是列表的当前元素被添加到列表的末尾,从而重复所有元素。
C#
C++
VB
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
*/
版本信息
.NET Framework
受以下版本支持:4.5.2、4.5.1、4.5、4、3.5、3.0、2.0
.NET Framework Client Profile
受以下版本支持:4、3.5 SP1
可移植类库
受以下版本支持:可移植类库
适用于 Windows 应用商店应用的 .NET
受以下版本支持:Windows 8
适用于 Windows Phone 应用的 .NET
受以下版本支持:Windows Phone 8、Silverlight 8.1
平台
Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008(不支持服务器核心角色), Windows Server 2008 R2(支持带 SP1 或更高版本的服务器核心角色;不支持 Itanium)
C#.NET的集合主要位于System.Collections和System.Collections.Generic(泛型)这两个namespace中。
1、System.Collections
比如ArrayList,其Add(继承自接口IList)和AddRange方法可用于想集合中添加元素。
代码示例:
(1)Add:添加单个元素
ArrayList myAL = new ArrayList()myAL.Add( "The" )
myAL.Add( "quick"蠢明饥 )
myAL.Add( "brown" )
myAL.Add( "fox" )
(2)AddRange:带返添加实现了ICollection接口的一个集合的所有元素到指定集合的末尾
ArrayList myAL = new ArrayList()myAL.Add( "The" )
myAL.Add( "quick" )
myAL.Add( "brown" )
myAL.Add( "fox" )
Queue myQueue = new 槐燃Queue()
myQueue.Enqueue( "jumped" )
myQueue.Enqueue( "over" )
myQueue.Enqueue( "the" )
myQueue.Enqueue( "lazy" )
myQueue.Enqueue( "dog" )
myAL.AddRange( myQueue )
2、System.Collections.Generic
泛型同样也有Add(继承自ICollection<T>)和AddRange两个方法。
代码示例:
(1)Add:添加单个元素
List<string> dinosaurs = new List<string>()dinosaurs.Add("Tyrannosaurus")
dinosaurs.Add("Amargasaurus")
dinosaurs.Add("Mamenchisaurus")
dinosaurs.Add("Deinonychus")
dinosaurs.Add("Compsognathus")
(2)AddRange:添加实现了接口IEnumerable<T>的一个泛型集合的所有元素到指定泛型集合末尾
string[] input = { "Brachiosaurus", "Amargasaurus", "Mamenchisaurus" }List<string> dinosaurs = new List<string>(input)
dinosaurs.AddRange(dinosaurs)
参考资料:
http://msdn.microsoft.com/zh-cn/library/system.collections(v=vs.100).aspx
http://msdn.microsoft.com/zh-cn/library/system.collections.generic(v=vs.100).aspx
我想知道,冲吵反过来插不行吗?声迟橡明一个ListViewItemsCollection,先Addrange新的码判旁,再Addrange旧的,最后再用这个Collection替换掉ListView的Item不就可以了欢迎分享,转载请注明来源:内存溢出
评论列表(0条)