Heim > Backend-Entwicklung > C++ > Wie erhalte ich die Anzahl einer IEnumerable ohne Iteration?

Wie erhalte ich die Anzahl einer IEnumerable ohne Iteration?

Barbara Streisand
Freigeben: 2024-12-26 06:50:13
Original
365 Leute haben es durchsucht

How to Get the Count of an IEnumerable without Iteration?

Ermitteln der Anzahl von IEnumerable ohne Iteration

In bestimmten Szenarien müssen Entwickler möglicherweise die Anzahl der Elemente innerhalb eines IEnumerable ermitteln. Sammlung ohne die Notwendigkeit, sie zu durchlaufen. Dies tritt beispielsweise auf, wenn ein Fortschrittsstatus angezeigt werden muss, indem die aktuelle und die Gesamtzahl der verarbeiteten Elemente angegeben werden.

IEnumerable Es fehlt eine inhärente Methode zum Abrufen der Anzahl ohne Iteration. Dies ist eine bewusste Designentscheidung, da IEnumerable umfasst eine verzögerte Auswertung und generiert nur Elemente, wenn sie angefordert werden.

Lösung: Verwendung von ICollection

Um die Einschränkung von IEnumerable zu umgehen, können Entwickler dies nutzen ICollection, das von IEnumerable erbt. und enthält eine Count-Eigenschaft. Durch das Umwandeln des IEnumerable Instanz zu ICollection kann direkt auf die Count-Eigenschaft zugegriffen werden, wodurch die Anzahl der Elemente bereitgestellt wird, ohne dass eine Iteration erforderlich ist.

Beispiel:

Betrachten Sie den folgenden Code:

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

Um die Anzahl der Tabellen ohne Iteration zu ermitteln, kann der Code wie folgt geändert werden folgt:

var count = ((ICollection<string>)Tables).Count;
Nach dem Login kopieren

Die Besetzung von ICollection ermöglicht den direkten Zugriff auf die Count-Eigenschaft und liefert den Wert 2, der die Anzahl der Tabellen in der Sammlung angibt, ohne dass eine Iteration erforderlich ist.

Das obige ist der detaillierte Inhalt vonWie erhalte ich die Anzahl einer 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage