簡體   English   中英

搜索多維數組

[英]Search multi-dimensional array

我在文本文件中有一個多維數組:

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 index[1] 從第一行到最后一行使用 for 循環。
2. 使用 if 語句來確定是否在 index[1] 中找到了用戶輸入,如果是,則存儲循環計數。 (在這里,如果沒有找到匹配項,我將重復 index[2],如果沒有找到匹配項,我將重復 index[3]。)
3. 在 index[0] 上使用另一個 for 循環和 if 語句來匹配找到的匹配項中的計數,並顯示相應的條目。 (我可以做這一步,但如果不知道如何做第 1 步和第 2 步,那是沒有希望的。)

我不知道如何將特定索引指定為循環目標。 或者我將循環放置在與我已經擁有的循環相關的位置 - 無論是否在其中。

編輯:

感謝編輯我帖子的人,我現在已經刪除了我的答案:-)

經過更多的時間,我取得了一些進展。 我已經弄清楚如何循環特定索引並確定是否在該索引中找到了用戶輸入:

        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 循環編號。

不要創建多維數組,而是創建一個字典或哈希表,其中鍵是數字,值是字母。 現在您可以輕松搜索數字並找到搜索時間為 O(1) 的相關字母。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM