0

我遇到了一个愚蠢的问题。

我试图使用嵌套的 for 循环逐步遍历 C# 多维数组,但我无法得到我想要的结果,我认为这只是我的代码的一个愚蠢问题。

string search = txtString.Text;

        int iLoop;
        int jloop;
        int iResult = -1;

        for (iLoop = 0; iLoop < sounds.GetLength(0) ; iLoop++)
        {
            for (jloop = 0; jloop < sounds.GetLength(1) ; jloop++)
            {

                string result;
                result = sounds[iLoop,jloop];

                if (result == search)
                {
                    iResult = iloop;
                }
            }
        }

            if (iResult == -1)
            {
                MessageBox.Show("Result not found");
            }
            else
            {
                MessageBox.Show("Result found at position " + iResult);                    
            }            
    }

它搜索数组,如果找到答案,则返回肯定结果,但结果位置始终是“在位置 1 找到结果”。

我做错了什么?

4

4 回答 4

0

有两个索引要查找: jloop 和 iLoop ,您可能会在二维数组中获得各种 jloop 值

于 2013-05-20T14:16:32.167 回答
0

您只存储一个维度 ( iResult)。它始终可以为 1,但第二维 ( jresult) 可以变化。

并且只是提醒不同语言的未来项目。尝试 noif (result == search)用于字符串。使用EqualCompare methods

于 2013-05-20T14:16:50.713 回答
0

还要检查您使用的参数上的名称,有时您称其为iLoop, others iloop。始终如一!:)

我猜答案总是在第 1 行,您只需i打印值,也打印jjLoop

于 2013-05-20T14:18:29.403 回答
0

请记住,即使在找到匹配项后,此代码段也会继续搜索。所以实际上你发现的是匹配文本的最后一个位置。

顺便说一句,也许不是只报告匹配项iLoop,您可以同时报告匹配项iLoopjLoop。或者,您可以将单个索引报告为iLoop * sounds.GetLength(0) + jLoop

于 2013-07-14T18:55:03.147 回答