Sayfalama
Tek sayfa, tüm sayfalar ya da her seferinde tek öğe.
Tek sayfa
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);}Bir ListAsync yöntemi Items, HasMore ve NextCursor içeren bir Page döndürür ve foreach öğeleri üzerinde dolaşır. Sonraki sayfayı okumak için NextCursor değerini aynı filtrelerle birlikte cursor: olarak geri geçirin.
Tüm sayfalar
var failed = await client.Emails.ListAllAsync(status: new[] { "failed" }); Console.WriteLine($"{failed.Count} messages failed");Bir ListAllAsync yöntemi imleci sonuna kadar izler ve tüm öğeleri tek bir liste içinde döndürür. Herhangi bir sayfadaki başarısızlık tüm çağrıyı başarısız kılar.
Her seferinde bir öğe
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"]);}Bir IterateAsync yöntemi bir IAsyncEnumerable<JsonObject> döndürür; bu, sonraki sayfayı yalnızca döngü oraya ulaştığında ister, bu yüzden bir break istekleri durdurur. Sayfalanan her listede, dolaştıkları listenin adını taşıyan üçü de bulunur: ListEventsAsync yanında ListAllEventsAsync ve IterateEventsAsync.
Bir dolaşım, API daha önce izlediği bir imleci yinelediğinde durur, böylece asla sonsuza kadar dönemez.