我需要一種快速搜索大型2維數組的方法。我從Excel中提取數組,所以1維表示行,第二維表示列。我希望獲得列匹配某些標準的行的列表。我需要知道行號(或數組的索引)。2維數組的快速部門
例如,如果我從excel中提取範圍。我可能需要找到列A =「dog」和列B = 7和列J>「a」的所有行。我只知道在運行時要找到哪些列和哪個值,所以我無法對列索引進行硬編碼。
我可以使用一個簡單的循環,但這是否有效?我需要運行數千次,每次搜索不同的標準。
For r As Integer = 0 To UBound(myArray, 0) - 1
match = True
For c = 0 To UBound(myArray, 1) - 1
If not doesValueMeetCriteria(myarray(r,c) then
match = False
Exit For
End If
Next
If match Then addRowToMatchedRows(r)
Next
doesValueMeetCriteria函數是一個簡單的函數,它根據查詢需求檢查數組元素的值。例如列A =狗等
從數組中創建一個數據表並使用.select方法更加有效嗎?
我可以用某種方式使用Linq嗎?
也許某種形式的字典或哈希表?
或者是最有效的簡單循環?
您的建議非常受歡迎。
您的代碼看起來似乎需要檢查每一行的每一列,但是您的描述似乎並非需要檢查所有列。這是什麼? – egrunin 2010-03-22 15:50:00
有可能檢查每一列。哪些列被檢查是動態決定。 – Tim 2010-03-22 16:48:58