gpt4 book ai didi

c# - 使用 .NET Core 2.2 从 Azure 存储获取所有 Blob

转载 作者:行者123 更新时间:2023-12-02 05:51:55 24 4
gpt4 key购买 nike

关于从 Azure 存储(或更准确地说是从容器)获取 Blob 列表的非常简单的问题

由于我使用的是.NET Core 2.2,并且 C# 7.3 版本中不允许使用异步流:

 await foreach (BlobItem blobItem in containerClient.GetBlobsAsync())
{
Console.WriteLine("\t" + blobItem.Name);
}

所以我尝试了类似的东西,但没有任何运气(在黑暗中刺伤)

List<BlobItem> items = new List<BlobItem>();
Task.Factory.StartNew(async () => items.Add(await containerClient.GetBlobsAsync()));

所以我想知道 C# v7.3 中等待 foreach 语法的替代方案是什么

谢谢

最佳答案

AsyncPageable<T> 返回者 GetBlobsAsync()暴露 IAsyncEnumerator<T>您可以使用简单的 while 来进行迭代循环:

Azure.AsyncPageable<Azure.Storage.Blobs.Models.BlobItem> blobs = containerClient.GetBlobsAsync();
IAsyncEnumerator<Azure.Storage.Blobs.Models.BlobItem> enumerator = blobs.GetAsyncEnumerator();
try
{
while (await enumerator.MoveNextAsync())
{
Azure.Storage.Blobs.Models.BlobItem blob = enumerator.Current;
// use blob
}
}
finally
{
await enumerator.DisposeAsync();
}

关于c# - 使用 .NET Core 2.2 从 Azure 存储获取所有 Blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63652641/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com