您的位置:首页 > 编程语言 > C#

C#泛型学习03--使用相应的泛型版本替换ArrayList

2012-03-01 23:48 381 查看
一、使用System.Collection.ArrayList对象的简单例子:

View Code

public static void Repeat<T>(List<T> list, T obj, int count)
{
if (count < 0)
{
throw (new ArgumentException(
"参数count 必须大于或等于零"));
}
for (int index = 0; index < count; index++)
{
list.Add(obj);
}
}


这个泛型方法有三个参数:

list 泛型List对象

obj 将被以指定次数添加进泛型List中的对象

count 把obj添加进泛型类中的次数

因为Clone方法也没有出现在泛型List类中(因为这个类并没有实现Icloneable接口),您可以使用泛型List类的GetRange方法做为替代。

List<int> oldList = new List<int>();
// 给oldList添加元素…
List<int> newList = oldList.GetRange(0, oldList.Count);


GetRange方法对List对象中一个范围的元素执行浅拷贝(跟ArrayList中的Clone方法接近)。在此例中这个范围是所有元素。

提示:ArrayList 默认的初始容量是16个元素,而List<T>的默认初始容量为4个元素。这意味着当添加第17个元素时,List<T>不得不 改变尺寸(重新分配内存)3次,而ArrayList只重新分配一次。这一点在评估应用程序性能时需要被考虑。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐