Как смоделировать Directory.EnumerateFiles в VS2008 vb.net

Мне было поручено создать версию Directory.EnumerateFiles для VB.NET в 2008 году.

Мне удалось сделать это для VS2008 в C#:

public IEnumerable<string> GetFileList(string fileSearchPattern, string rootFolderPath)
{
    Queue<string> pending = new Queue<string>();
    pending.Enqueue(rootFolderPath);
    string[] tmp;
    while (pending.Count > 0)
    {
        rootFolderPath = pending.Dequeue();
        tmp = Directory.GetFiles(rootFolderPath, fileSearchPattern, SearchOption.AllDirectories);
        for (int i = 0; i < tmp.Length; i++)
        {
            yield return tmp[i];
        }
        tmp = Directory.GetDirectories(rootFolderPath);
        for (int i = 0; i < tmp.Length; i++)
        {
            pending.Enqueue(tmp[i]);
        }
    }
}

и теперь я перевожу его на vb.net:

Private Function GetfileList(ByVal fileSearchPattern As String, ByVal rootFolderPath As String) As IEnumerable(Of String)
    Dim pending As New Queue(Of String)()

    pending.Enqueue(rootFolderPath)
    Dim tmp() As String


    While (pending.Count > 0)
        rootFolderPath = pending.Dequeue()
        tmp = Directory.GetFiles(rootFolderPath, fileSearchPattern, SearchOption.AllDirectories)
        For counter As Integer = 0 To tmp.Length - 1

            'Yield gives an error as it does not appear to be a keyword!!

            tmp = Directory.GetDirectories(rootFolderPath)
            For i As Integer = 0 To tmp.Length - 1
                pending.Enqueue(tmp(i))
            Next
        Next
    End While
End Function

но ключевое слово Yield выдает ошибку "не объявлено"?

Есть ли альтернатива доходности, которую поддерживает vb.net 2008?

0 ответов

Другие вопросы по тегам