嵌套For循环多维数组搜索
本文关键字:数组 搜索 For 循环 嵌套 | 更新日期: 2023-09-27 18:14:31
我有一个很傻的问题。
我试图一步通过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);
}
}
它搜索数组,如果找到答案,则返回一个正结果,但结果位置始终是" result found at position 1"。
我做错了什么?
您只存储一个维度(iResult
)。它可以总是1,但第二次元(jresult
)可以变化。
为将来的不同语言项目做个提示。尽量不要使用if (result == search)
的字符串。使用Equal
或Compare methods
有两个索引要查找:jloop和illoop,可能您会在2D数组中获得各种jloop值
还要检查您使用的参数的名称,有时您将其称为iLoop
,有时称为iloop
。是一致的!:)
我猜答案总是在第1行,你只是打开i
值,也打印j
值jLoop
。
请记住,即使找到匹配项,该代码片段也将继续搜索。因此,实际上您要查找的是匹配文本的最后一个位置。
作为题外话,也许您可以同时报告匹配的iLoop
和jLoop
,而不是只报告匹配的iLoop
。或者,您可以将单个索引报告为iLoop * sounds.GetLength(0) + jLoop