C#列表<GenericClass>(100)构造原则原则、列表、amp、GenericClass

2023-09-03 10:24:15 作者:做最好的自己

如果我执行以下操作:

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上的此处。

谢谢您的帮助。

推荐答案

Equipment download generic inbound 和mapping处理逻辑分析

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();                
}