C#列表<GenericClass>(100)构造原则 [英] C# List<GenericClass>(100) Construction Principles

查看:0
本文介绍了C#列表<GenericClass>(100)构造原则的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果我执行以下操作:

List<GenericClass> listObj = new List<GenericClass>(100);

// Do I need this part too?
for (int i = 0; i < 100; i++)
{
    listObj[i] = new GenericClass();
}
基本上,我是问C#编译器是否会自动为列表中的100个GenericClass对象激发GenericClass构造函数。我搜索了MSDN文档以及StackOverflow上的此处。

谢谢您的帮助。

推荐答案

List不是这样工作的。当您指定容量时,它是初始容量,而不是列表中的项目数。在您通过Add方法添加元素之前,该列表不包含任何元素。列表没有最大容量。而且,由于您是通过Add方法添加对象的,所以您必须首先对其进行更新。

事实上,按照您在问题中提出的操作将引发ArgumentOutOfRange异常。

对于您正在执行的操作,您需要使用数组。

var listObj = new List<GenericClass>();
listObj[0] = new GenericClass(); // ArgumentOutOfRange exception

这将起作用:

for (int i=0;i<100;i++)
{
    listObj.Add(new GenericClass());
}

这是您试图执行的操作:

var arrayObj = new GenericClass[100];
for (int i = 0; i < 100; i++)
{
    arrayObj[i] = new GenericClass();                
}

这篇关于C#列表&amp;lt;GenericClass&amp;gt;(100)构造原则的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆