我在文本文件中有一个多维数组:
a,1,2,3
b,4,5,6
c,7,8,9
d,10,11,12
我想输入其中一个数字,搜索数组,并显示数字所在行的相应字母。
非常感谢任何帮助。
编辑:
我有一个包含上面给出的信息的csv文件。
到目前为止,我有:
1.创建一个数组来存储读取文件中的所有行
2.创建第二个数组以存储最终的数组值
3.创建第三个数组以存储行拆分,并将值放回第二个数组。
这是代码:
string[] as_FirstArray = System.IO.File.ReadAllLines("PartNumbersFile.csv");
string[,] as_SecondArray = new string[4, as_FirstArray.Length];
string[] as_ThirdArray;
string s_Input = Console.ReadLine();
for (int i_Count1 = 0; i_Count1 < as_FirstArray.Length; i_Count1++)
{
as_ThirdArray = as_FirstArray[i_Count1].Split(',');
as_SecondArray[0, i_Count1] = as_ThirdArray[0];
as_SecondArray[1, i_Count1] = as_ThirdArray[1];
as_SecondArray[2, i_Count1] = as_ThirdArray[2];
as_SecondArray[3, i_Count1] = as_ThirdArray[3];
}
现在我完全卡住了。我被告知,从这里,我需要:
1.在第一行到最后一行的as_SecondArray索引[1]上使用for循环
2.使用if语句确定是否在index [1]中找到userinput,如果是,则存储循环计数。 (这里,如果没有找到匹配,我将重复索引[2],如果没有找到匹配,则重复索引[3]。)
3.在index [0]上使用另一个for循环和if语句来匹配找到的匹配中的计数,并显示相应的条目。 (我可以做这一步,但在不知道如何做第1步和第2步的情况下,这是无望的。)
我不知道如何将特定索引指定为循环目标。或者我把循环放在我已经拥有的循环中 - 在里面或不在里面。
编辑:
感谢您编辑我的帖子,我现在已经删除了我的答案: - )
经过很多次,我取得了一些进步。我已经想出如何循环一个特定的索引并确定是否在该索引中找到了userinput:
for (int i_Count2 = 0; i_Count2 < as_SecondArray.GetLength(1); i_Count2++)
{
for (int i_Count3 = 0; i_Count3 < as_SecondArray.GetLength(0); i_Count3++)
{
if (as_SecondArray[1, i_Count3].Equals(s_Input))
{
s_Found = as_SecondArray[1, i_Count3];
}
else { lblOutput.Text = "not found"; }
}
}
但我仍然坚持如何检索i_Count3循环编号。
答案 0 :(得分:0)
不要创建多维数组而是创建一个Dictionary或Hashtable,其中key将是数字,值将是字母。现在,您可以轻松搜索数字并找到搜索时间为O(1)的相关字母。