Как смоделировать 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?