搜索多维数组

时间:2016-05-05 07:20:39

标签: c#

我在文本文件中有一个多维数组:

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循环编号。

1 个答案:

答案 0 :(得分:0)

不要创建多维数组而是创建一个Dictionary或Hashtable,其中key将是数字,值将是字母。现在,您可以轻松搜索数字并找到搜索时间为O(1)的相关字母。