嵌套For循环多维数组搜索

时间:2013-05-20 14:13:31

标签: c#

有一个愚蠢的问题即时挣扎。

我试图使用嵌套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 个答案:

答案 0 :(得分:0)

有两个要查找的索引:jloop和iLoop,可能你会得到2D数组中的各种jloop值

答案 1 :(得分:0)

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

并提醒您使用不同语言的未来项目。不要将if (result == search)用于字符串。使用EqualCompare methods

答案 2 :(得分:0)

同时检查您使用的参数上的名称,有时您将其称为iLoop,其他人iloop。 始终如一! :)

我猜答案总是在第1行,您只需输入i值,同时打印jjLoop

答案 3 :(得分:0)

请注意,即使找到匹配项后,此代码段也会继续搜索。所以实际上你找到的是匹配文本的 last 位置。

除此之外,您可以报告匹配的iLoopiLoop,而不是仅报告匹配的jLoop。或者,您可以将单个索引报告为iLoop * sounds.GetLength(0) + jLoop