You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Azure.Data.Tables列出所有表?

如何使用Azure.Data.Tables列出所有表?

嘿,我完全懂你的困扰!当初从Microsoft.Azure.Cosmos.Table迁移到Azure.Data.Tables的时候,我也找了好一会儿替代ListTablesSegmentedAsync()的方法。其实新包已经把表的枚举功能从TableClient移到了**TableServiceClient**类里——这个客户端是用来操作整个存储账户层面的资源(比如表的创建、列举),而TableClient更多是针对单个表的操作。

下面是具体的实现方式:

首先确保你已经引用了Azure.Data.Tables包,然后在代码里引入命名空间:

using Azure.Data.Tables;

基础枚举所有表

先实例化TableServiceClient(用你的存储账户连接字符串),然后用ListTablesAsync()方法来遍历所有表:

// 初始化服务客户端
var tableServiceClient = new TableServiceClient("你的存储账户连接字符串");

// 异步遍历所有表
await foreach (var table in tableServiceClient.ListTablesAsync())
{
    Console.WriteLine($"找到表:{table.Name}");
}

分页枚举(处理大量表的场景)

如果你的存储账户里有很多表,需要分页获取的话,可以结合AsPages()方法来实现,类似原来的分段获取逻辑:

var tableServiceClient = new TableServiceClient("你的存储账户连接字符串");
string continuationToken = null;

do
{
    // 获取单页的表数据
    var page = await tableServiceClient.ListTablesAsync(continuationToken: continuationToken).AsPages().FirstAsync();
    
    // 遍历当前页的表
    foreach (var table in page.Values)
    {
        Console.WriteLine($"找到表:{table.Name}");
    }
    
    // 更新续传令牌,用于获取下一页
    continuationToken = page.ContinuationToken;
} while (continuationToken != null);

简单来说,ListTablesAsync()就是新包用来替代旧版ListTablesSegmentedAsync()的方法,它采用了更现代的异步可枚举(IAsyncEnumerable)模式,用起来比原来的分段回调更简洁直观。

备注:内容来源于stack exchange,提问作者OreoFanatics

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 14:47:49