你如何将阵列附加到另一个?

时间:2013-04-14 17:39:34

标签: arrays vb.net append

我正在编写一个函数来检查文件夹中的多个文件扩展名,然后返回匹配的文件名,但是我在返回结果时遇到了问题。

该函数“有效”,但显然每次循环时,都会将Directory.GetFiles()的结果重新分配到Files,而不是附加它们。谁能告诉我怎么做?

如果有人想知道,我这样做是因为据我所知,没有内置的方式可以使用Directory.GetFiles()来搜索多个模式。如果这是错的,请纠正我。感谢。

Private Function GetFiles(Path As String, SearchPattern As String)

    Dim SearchPatterns() As String = SearchPattern.Split("|") ' The patterns to search
    Dim Files() As String = Nothing ' The files to return to the user

    For Each Pattern In SearchPatterns

        Files = Directory.GetFiles(Path, Pattern)
        Array.Sort(Files)

    Next

    Return Files

End Function

1 个答案:

答案 0 :(得分:2)

改为使用List(Of T)类和List(Of T).AddRange方法:

Private Function GetFiles(Path As String, SearchPattern As String)

    Dim SearchPatterns() As String = SearchPattern.Split("|") ' The patterns to search
    Dim Files As New List(Of String)

    For Each Pattern In SearchPatterns
        Files.AddRange(Directory.GetFiles(Path, Pattern))
    Next

    Return Files.OrderBy((Function(f) f)).ToArray()
End Function