C# 对于循环迭代&;阵列故障
我试图创建一个大约5500个团队的列表,并使用从教程中获得的代码为列表中的每个元素创建一个对象团队:C# 对于循环迭代&;阵列故障,c#,list,for-loop,foreach,indexing,C#,List,For Loop,Foreach,Indexing,我试图创建一个大约5500个团队的列表,并使用从教程中获得的代码为列表中的每个元素创建一个对象团队: public Form1() { InitializeComponent(); List<Team> teams = new List<Team>(); teams.Capacity = 5500; for (int y = 1; y <= 5500; y++)
public Form1()
{
InitializeComponent();
List<Team> teams = new List<Team>();
teams.Capacity = 5500;
for (int y = 1; y <= 5500; y++)
{
teams[y] = new Team(y);
}
}
public Form1()
{
初始化组件();
列表团队=新列表();
团队。能力=5500;
对于(int y=1;y数组的索引从零开始,因此teams[5500]
是列表的第5501个元素。列表的容量为5500,因此超出范围
您可以将容量
增加到5501,或将新团队(y+1)
用于y
从0增加到5499
此外,您还可以通过使用不同的构造函数取消设置容量的行:
List<Team> teams = new List<Team>(5500);
List团队=新列表(5500);
数组的索引从零开始,因此团队[5500]
是列表中的第5501个元素。列表的容量为5500,因此超出范围
您可以将容量
增加到5501,或将新团队(y+1)
用于y
从0增加到5499
此外,您还可以使用其他构造函数来消除设置容量的行:
List<Team> teams = new List<Team>(5500);
List团队=新列表(5500);
您正在访问一个空的列表,任何访问都会引发此异常。设置容量不会创建空条目
var list = new List<int>(10); // Capacity = 10 but Count = 0
list[0] = 1; // out-of-range exception is thrown
您正在访问一个空的列表
,任何访问都会引发此异常。设置容量不会创建空条目
var list = new List<int>(10); // Capacity = 10 but Count = 0
list[0] = 1; // out-of-range exception is thrown
public Form1()
{
初始化组件();
名单小组=新名单(5500);
对于(int y=1;y<5501;y++)
{
团队。添加(新团队(y));
}
}
这将起作用。这是初始化项目并将其添加到列表中的方式。
需要注意的事情之一是y<5501
vsypublic Form1()
{
初始化组件();
名单小组=新名单(5500);
对于(int y=1;y<5501;y++)
{
团队。添加(新团队(y));
}
}
这将起作用。这是初始化项目并将其添加到列表中的方式。
需要注意的一点是y<5501
vsy如果你真的想要一个数组,请使用Team[]teams=newteam[5500];
。但是你可以使用List
,只需使用Add
方法将项目附加到列表中即可。请注意List
和T[]
是从0
到N-1
的索引,而不是从1
到N
的索引。我使用列表是因为我发现列表比普通数组更容易访问。谢谢大家的帮助!是的,列表通常更好。我误解了,因为你提到了“数组问题”在标题中,但我意识到这可能只是对异常消息的一个引用。注意:如果你喜欢Linq,你可以考虑<代码> var团队=枚举。范围(1, 5500)。选择(y= >新团队(y))。;
。但是您可以使用列表
,只需使用添加
方法将项目附加到列表中即可。请注意列表
和T[]
是从0
到N-1
的索引,而不是从1
到N
的索引。我使用列表是因为我发现列表比普通数组更容易访问。谢谢大家的帮助!是的,列表通常更好。我误解了,因为你提到了“数组问题”在标题中,但我意识到这可能只是对异常消息的一个引用。注意:如果你喜欢Linq,你可以考虑<代码> var团队=枚举。范围(1, 5500)。选择(y= >新团队(Y))。