list<t>中addrange怎么用

list<t>中addrange怎么用,第1张

将指定集合元素添加到 List<T>的末尾。

命名空间: 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不就可以了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11996594.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存