首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IndexOutOfRangeException C#

IndexOutOfRangeException C#
EN

Stack Overflow用户
提问于 2012-06-08 01:45:57
回答 5查看 299关注 0票数 0

我的目标是创建一个三元组for循环来乘以矩阵X矩阵,我得到了输入矩阵,我必须得到矩阵^2。

当我调试以下代码时,我得到了错误"IndexOutOfRangeException“-索引超出了数组的界限:

代码语言:javascript
复制
 for (int i = 1; i < nodeList.Count+1; i++)
            {
                for (int j = 1; j < nodeList.Count+1; j++)
                {
                    result[i, j] = "0";

                    for (int k = 1; k < nodeList.Count+1; i++)
                    {

                        if ((matrix[i, k] != null) && (matrix[k, j] != null))
                        {
                            n1 = Convert.ToInt32(matrix[i, k]);
                            n2 = Convert.ToInt32(matrix[k, j]);
                            n3 = Convert.ToInt32(result[i, j]);

                            total = n3 + n1 * n2;
                            _total = total.ToString();

                            result[i, j] = _total;

                        }
                    }
                }
            }

其中变量是: 1. matrix是字符串类型,维数是(nodelist+1,nodelist+1) 2.result是与我要放置结果矩阵的矩阵的类型和维数相同的结果3. 3.nodelist是我在图中拥有的节点名称的数组4. n1、n2、n3是整数,我将矩阵的转换整数放入其中。5. 6._total是结果矩阵的乘法转换总整数的操作结果

所以我为每个数组和矩阵设置了正确的维数,但我总是得到相同的错误。我不明白为什么。能不能请别人帮我注意一下这个错误,因为我看不出来。

EN

回答 5

Stack Overflow用户

发布于 2012-06-08 01:49:13

k循环中,您将递增i

票数 5
EN

Stack Overflow用户

发布于 2012-06-08 01:49:06

对于(int k = 1;k< nodeList.Count+1;i++) <--您正在递增i,它应该递增k。

如下所示:

for (int k= 1;k< nodeList.Count+1;k++)

票数 3
EN

Stack Overflow用户

发布于 2012-06-08 01:48:02

在C#中,数组是从0开始的--第一个元素的位置是0,而不是1。

代码语言:javascript
复制
for (int i = 1; i < nodeList.Count+1; i++)

..。应该是...

代码语言:javascript
复制
for (int i = 0; i < nodeList.Count; i++)

对于k-loop,似乎还有一个复制-粘贴错误。

代码语言:javascript
复制
for (int k = 1; k < nodeList.Count+1; i++)  // should be k++?
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10937052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档