Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对于循环迭代&;阵列故障_C#_List_For Loop_Foreach_Indexing - Fatal编程技术网

C# 对于循环迭代&;阵列故障

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++)

我试图创建一个大约5500个团队的列表,并使用从教程中获得的代码为列表中的每个元素创建一个对象团队:

    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
vs
y
public Form1()
{
初始化组件();
名单小组=新名单(5500);
对于(int y=1;y<5501;y++)
{
团队。添加(新团队(y));
}
}
这将起作用。这是初始化项目并将其添加到列表中的方式。
需要注意的一点是
y<5501
vs
y如果你真的想要一个数组,请使用
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))。