我有數組的數組:搜索在數組的數組索引
昏暗IDMUsers方式列表(陣列)
我填充此陣列的信息。示例: [{Data1a,Data2a,Data3a,...,Data30a},{Data1b,Data2b,Data3b,...,Data30b},{Data1c,Data2c,Data3c,...,Data30c}]
現在,我需要找到例如「Data3b」,並且函數必須返回它所在的寄存器編號,在這種情況下,它必須返回第2條記錄。即{Data1b,Data2b,Data3b,...,Data30b }
我正在使用VB.Net。
我的代碼是:
Sub Main()
Dim TecoReader As New FileManagement
Dim IDMUsers As List(Of Array)
' Populate Array
IDMUsers = TecoReader.ReadFromFile(My.Settings.ActivosIDMFilePath, My.Settings.CharSeparator)
Console.writeline (SearchInArray("text"))
end sub
Private Function SearchInArray(ByVal ToSearchFor As String) As String
For Each Register In IDMUsers
For Each Field In Register
If Field = ToSearchFor Then
Return Register(26) & " - " & Register(27)
End If
Next
Next
Return ""
End Function
它的工作原理與SeachInArray功能,但我有一個大陣(20K寄存器),所以是非常緩慢,我需要一個更好的方法。
數據是否總是有特定的格式(FE第一指數結束'a',第二個以'b'結尾,...)?我的意思是,存在哪些規則?如果它不能包含任意數據,則可以使用像Dictionary這樣的其他集合。 –
數據沒有這種格式。它只是表示陣列信息。我無法更改IDMUsers的類型。它必須是列表(的數組)的類型。 – Oblongo
如果您無法更改集合類型,並且數據沒有特定的格式,那麼這是唯一的選擇(LINQ方法不會更有效)。您可以使用數據庫而不是文件。 –