Для того, чтобы упростить код, чтобы я мог лучше понять, я пытаюсь преобразовать эту рекурсии вызов в время цикла:Как переписать этот рекурсивный вызов как цикл?
function getMusic(IStorageFolder folder) {
int cnt = 0;
var folders = await folder.GetFoldersAsync();
if (folders != null)
foreach (var fol in folders)
await getMusic(fol);
var files = await folder.GetFilesAsync();
foreach (var file in files)
{
MusicProperties musicProperties = await file.Properties.GetMusicPropertiesAsync();
source.Add(new Music("artist", "title", "album");
cnt++;
}
}
В коде source
является ObservableCollection типа Music
(содержит три параметра, как видна в source.Add...
линия).
Однако, я не увенчался успехом. Вот моя попытка, которая, похоже, не заполняет список source
.
private async Task getMusic(IStorageFolder folder)
{
Stack<StorageFolder> fold = new Stack<StorageFolder>();
int count = 0; int firstTen = 0;
var folders = await folder.GetFoldersAsync();
foreach (var indvFolder in folders)
fold.Push(indvFolder);
while (count < fold.Count)
{
var fol = fold.Pop();
if (firstTen > 9)
break;
var files = await fol.GetFilesAsync();
foreach (var file in files)
{
MusicProperties musicProperties = await file.Properties.GetMusicPropertiesAsync();
source.Add(new Music("artist", "title", "album"));
count++;
}
firstTen++;
}
}
у вас был успешным в «Отладке» кода. Неужели вы не можете понять цикл foreach ..? – MethodMan
У меня была «Debug.WriteLine» после каждой строки в коде для проверки значений переменных. Я взял их из этого кода, чтобы он был чистым. – DemCodeLines
Итак, в чем проблема/проблема, знаете ли вы, как использовать Quick Watch отладчика – MethodMan