दस्तावेज़ पर जाएँ
C#

पेजिनेशन

एक पेज, हर पेज, या एक बार में एक आइटम।

एक पेज

page.cs
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 मेथड Items, HasMore और NextCursor वाला Page लौटाता है, और foreach उसके आइटम पर चलता है। अगला पेज पढ़ने के लिए NextCursor को उन्हीं फ़िल्टर के साथ cursor: के रूप में वापस पास करें।

हर पेज

all.cs
var failed = await client.Emails.ListAllAsync(status: new[] { "failed" }); Console.WriteLine($"{failed.Count} messages failed");

एक ListAllAsync मेथड कर्सर का अंत तक पीछा करता है और सभी आइटम एक ही सूची में लौटाता है। किसी भी पेज पर विफलता पूरी कॉल को विफल कर देती है।

एक बार में एक आइटम

iterate.cs
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 अनुरोधों को रोक देता है। पेजों में बँटने वाली हर सूची के पास तीनों होते हैं, जिनका नाम उसी सूची पर रखा गया है जिस पर वे चलते हैं: ListEventsAsync के साथ ListAllEventsAsync और IterateEventsAsync।

चक्कर तब रुक जाता है जब API कोई ऐसा कर्सर दोहराता है जिसका वह पहले पीछा कर चुका है, इसलिए वह कभी अंतहीन नहीं घूम सकता।