1

我有一个数组数组:

将 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 寄存器),所以速度很慢,我需要更好的方法。

4

1 回答 1

0

我的代码是用 C# 编写的,避免至少一个FOR EACH循环可能对您有所帮助....

int mainArrayIndex = 0;
        string arrayIndex = string.Empty;
        int searchIdex = 0;
        foreach (string[] item in jaggedArray)
        {
            mainArrayIndex++;
            searchIdex = Array.BinarySearch(item, "H");
            if (searchIdex > 0)
            {
                arrayIndex = mainArrayIndex + "," + searchIdex.ToString();
                break;
            }
        }
于 2012-09-08T10:32:53.837 回答