Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.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# - Fatal编程技术网

C# 索引超出范围

C# 索引超出范围,c#,C#,我得到这个错误 索引超出范围。必须为非负数且小于集合的大小。 参数名称:索引 在指示位置的代码中 List<int>[] tetangga = new List<int>[this.observasi]; for (int i = 0; i < this.observasi; i++) { tetangga[i] = new List<int>(); for (int j = 0; j < this.observasi; j++)

我得到这个错误

索引超出范围。必须为非负数且小于集合的大小。
参数名称:
索引

在指示位置的代码中

List<int>[] tetangga = new List<int>[this.observasi];
for (int i = 0; i < this.observasi; i++) 
{
    tetangga[i] = new List<int>();
    for (int j = 0; j < this.observasi; j++) 
    {
        if (tableWeight[i, j] > 0) 
        {
            tetangga[i].Add(j);
        }
    }
}

this.dataTable.ColumnCount = 2;
this.dataTable.Columns[0].HeaderCell.Value = "REGION";
this.dataTable.Columns[1].HeaderCell.Value = "REGION NEIGHBOR";
this.dataTable.Columns[1].SortMode = DataGridViewColumnSortMode.NotSortable;
this.dataTable.Columns[0].SortMode = DataGridViewColumnSortMode.NotSortable;
this.dataTable.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;

int jlhRow = 0;
for (int i = 0; i < this.observasi; i++)
{
    jlhRow = jlhRow + tetangga[i].Count;
}
this.dataTable.RowCount = jlhRow;

int row = 0;
for (int k = 0; k < this.observasi; k++)
{
    this.dataTable[0, row].Value = this.nameRegion[k];  // <-- error occurs here
    for (int l = 0; l < tetangga[k].Count; l++)
    {
        this.dataTable[1, row].Value = this.nameRegion[tetangga[k][l]];
        row++;
    }
}
List[]tetangga=新列表[this.observasi];
for(int i=0;i0)
{
特坦加[i].添加(j);
}
}
}
this.dataTable.ColumnCount=2;
this.dataTable.Columns[0].HeaderCell.Value=“REGION”;
this.dataTable.Columns[1].HeaderCell.Value=“区域邻居”;
this.dataTable.Columns[1].SortMode=DataGridViewColumnSortMode.NotSortable;
this.dataTable.Columns[0].SortMode=DataGridViewColumnSortMode.NotSortable;
this.dataTable.AutoSizeColumnsMode=DataGridViewAutoSizeColumnsMode.AllCells;
int jlhRow=0;
for(int i=0;i
    for (int j = 0; j < this.observasi; j++) 
    {
        if (tableWeight[i, j] > 0) 
        {
            tetangga[i].Add(j);
        }
    }
for(int j=0;j0)
{
特坦加[i].添加(j);
}
}

我们如何知道负重的第二维度是什么?我想它不会上升到这个维度。observasi。

在循环的开始处,在行之前放置一个断点:

this.dataTable[0, row].Value = this.nameRegion[k];

在调试器中检查
dataTable
nameRegion
,您可以回答自己的问题。很可能集合在您指定的索引处不包含元素。

这是什么。nameRegion
?看起来可疑。请发布完整堆栈跟踪,并且索引超出范围是因为您将在数组中访问的索引,该索引大于给定的数组分配大小。断点的使用将对您有所帮助。请尝试将断点放入循环(异常),并在索引、数组和数据上添加监视。