C# 嵌套循环多维数组搜索

C# 嵌套循环多维数组搜索,c#,C#,有一个愚蠢的问题,我正在努力解决 我试图使用嵌套for循环逐步遍历一个C#多维数组,但我无法得到我想要的结果,我认为这只是我的代码中的一个愚蠢的问题 string search = txtString.Text; int iLoop; int jloop; int iResult = -1; for (iLoop = 0; iLoop < sounds.GetLength(0) ; iLoop++) {

有一个愚蠢的问题,我正在努力解决

我试图使用嵌套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);                    
            }            
    }
string search=txtString.Text;
int iLoop;
int-jloop;
int-iResult=-1;
for(iLoop=0;iLoop
它搜索数组,如果找到答案,则返回一个肯定结果,但结果位置始终为“result found at position 1”


我做错了什么?

有两个索引需要查找:jloop和iLoop,您可能会在2D数组中得到不同的jloop值

您只存储一个维度(
iResult
)。它可以始终为1,但第二维度(
jresult
)可能会有所不同


并提醒未来的项目使用不同的语言。请尝试对字符串使用
if(result==search)
。使用
Equal
Compare方法

同时检查所用参数的名称,有时称之为
iLoop
,有时称之为
iLoop
。 保持一致!:)


我猜答案总是在第1行,您只需弹一下
I
值,同时打印
j
jLoop
请记住,即使找到匹配项,此代码片段仍将继续搜索。事实上,你找到的是匹配文本的最后一个位置


另外,您可以同时报告匹配的
iLoop
jLoop
,而不是只报告匹配的
iLoop
。或者,您可以将单个索引报告为
iLoop*sounds.GetLength(0)+jLoop

可能是因为结果总是在第一行?如何声明
sounds
以及分配给它的内容?顺便说一句,在您的
代码概念中,位置
对应于
的数量,而不是成对的
行、列
。这是故意的吗?@aleksey.berezan第二排实际上,因为0=第一排?@rbaryyoung,我有一个习惯称第0位为
zeroth
,第1位为
first
。但是为了方便起见,让它成为第1行=第2行:)在C#中,
=
对于原语和字符串来说是非常好的。。。但如果他换用Java或其他语言,会给初学者带来很多麻烦。更好的方法是在所有语言中使用相同的表示法,您可以确定,您已经使用了它(OK:)