Heim > Backend-Entwicklung > C++ > Wie erhalte ich die Anzahl der Elemente in einem IEnumerable ohne Iteration?

Wie erhalte ich die Anzahl der Elemente in einem IEnumerable ohne Iteration?

DDD
Freigeben: 2024-12-28 08:40:12
Original
482 Leute haben es durchsucht

How to Get the Count of Items in an IEnumerable without Iteration?

Artikelanzahl aus IEnumerable abrufen ohne Iteration

Stellen Sie sich ein Szenario vor, in dem Sie ein IEnumerable Sammlung wie:

private IEnumerable<string> Tables
{
    get
    {
        yield return "Foo";
        yield return "Bar";
    }
}
Nach dem Login kopieren

Sie möchten diese Sammlung durchlaufen und den Fortschritt als „Verarbeitung #n von #m“ anzeigen. Gibt es eine Möglichkeit, den Wert von m zu bestimmen, ohne vor der Hauptiteration zu iterieren?

IEnumerable verstehen

Standardmäßig lässt IEnumerable keinen direkten Abruf von zu Artikelanzahl. Die verzögerte Auswertung bedeutet, dass Elemente nur bei Bedarf abgerufen werden. Diese Entwurfswahl wird getroffen, um die Ressourcennutzung zu optimieren, indem unnötige Speicherzuweisung und -verarbeitung vermieden werden.

Alternative Lösung: Verwendung von ICollection

Wenn Sie sofortige Kenntnis der Artikelanzahl benötigen, Eine Alternative zu IEnumerable ist die Verwendung von ICollection. Im Gegensatz zu IEnumerable stellt ICollection eine Count-Eigenschaft bereit, die die Anzahl der Elemente in der Sammlung zurückgibt.

public class TableCollection : ICollection<string>
{
    // Implementation details omitted for brevity

    public int Count => 2;
}
Nach dem Login kopieren

Durch Umwandlung Ihrer Tables-Sammlung in ICollection oder indem Sie eine generische Sammlung wie List verwenden, können Sie auf die Count-Eigenschaft zugreifen, um die Anzahl der Elemente abzurufen, ohne dass eine Iteration erforderlich ist.

Fazit

Während IEnumerable dies bietet Vorteile der Lazy-Evaluierung: Das Abrufen der Artikelanzahl wird nicht direkt unterstützt. Für den sofortigen Zugriff auf die Zählung sollten Sie ICollection oder eine geeignetere Datenstruktur verwenden, die diese Funktionalität bietet.

Das obige ist der detaillierte Inhalt vonWie erhalte ich die Anzahl der Elemente in einem IEnumerable ohne Iteration?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage