有一个愚蠢的问题即时挣扎。
我试图使用嵌套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找到结果”。
我做错了什么?
答案 0 :(得分:0)
有两个要查找的索引:jloop和iLoop,可能你会得到2D数组中的各种jloop值
答案 1 :(得分:0)
您只存储一个维度(iResult
)。它总是1,但第二维(jresult
)可以变化。
并提醒您使用不同语言的未来项目。不要将if (result == search)
用于字符串。使用Equal
或Compare methods
。
答案 2 :(得分:0)
同时检查您使用的参数上的名称,有时您将其称为iLoop
,其他人iloop
。
始终如一! :)
我猜答案总是在第1行,您只需输入i
值,同时打印j
值jLoop
。
答案 3 :(得分:0)
请注意,即使找到匹配项后,此代码段也会继续搜索。所以实际上你找到的是匹配文本的 last 位置。
除此之外,您可以报告匹配的iLoop
和iLoop
,而不是仅报告匹配的jLoop
。或者,您可以将单个索引报告为iLoop * sounds.GetLength(0) + jLoop