صفحهبندی
یک صفحه، همهٔ صفحهها، یا هر بار یک آیتم.
یک صفحه
var page = await client.Threads.ListAsync(folder: "inbox", limit: 25); foreach (var thread in page){ Console.WriteLine(thread["id"]);} if (page.HasMore){ var next = await client.Threads.ListAsync(folder: "inbox", limit: 25, cursor: page.NextCursor); Console.WriteLine(next.Count);}یک متد ListAsync یک Page با Items، HasMore و NextCursor برمیگرداند، و foreach موردهای آن را میپیماید. برای خواندن صفحهٔ بعد، NextCursor را بهعنوان cursor: و با همان فیلترها برگردانید.
همهٔ صفحهها
var failed = await client.Emails.ListAllAsync(status: new[] { "failed" }); Console.WriteLine($"{failed.Count} messages failed");یک متد ListAllAsync مکاننما را تا انتها دنبال میکند و همهٔ موردها را در یک فهرست برمیگرداند. شکست در هر صفحه کل فراخوانی را ناموفق میکند.
هر بار یک مورد
await foreach (var contact in client.Contacts.IterateAsync(limit: 100)){ if ((string?)contact["email"] == "[email protected]") { break; }} await foreach (var entry in client.Emails.IterateEventsAsync("msg_3f9a1c07d2b84e6a9c5b1f20")){ Console.WriteLine(entry["type"]);}یک متد IterateAsync یک IAsyncEnumerable<JsonObject> برمیگرداند که صفحهٔ بعد را فقط وقتی میخواهد که حلقه به آن برسد، پس یک break درخواستها را متوقف میکند. هر فهرست صفحهبندیشده هر سه را دارد که به نام فهرستی که میپیمایند نامگذاری شدهاند: ListAllEventsAsync و IterateEventsAsync در کنار ListEventsAsync.
پیمایش وقتی میایستد که API مکاننمایی را تکرار کند که پیشتر دنبال کرده است، پس هرگز نمیتواند بیپایان بچرخد.