Ich verwende die folgende Syntax zum Durchlaufen einer Auflistungssammlung:
%Vor%Wie bekomme ich den Index des aktuellen Objekts innerhalb der Schleife? Ich verwende IndexOf (PropertyActor), aber das scheint ineffizient, da es die Sammlung durchsucht, wenn ich das Objekt bereits verfügbar habe!
Ein Index hat für ein IEnumerable keine Bedeutung, was das foreach-Konstrukt verwendet. Das ist wichtig, weil foreach
möglicherweise nicht in der Indexreihenfolge aufzählt, wenn Ihr bestimmter Sammlungstyp IEnumerable auf eine seltsame Weise implementiert. Wenn Sie über ein Objekt verfügen, auf das durch den Index und zugegriffen werden kann, ist Ihnen der Index während einer Iteration wichtig. Dann sollten Sie lieber eine traditionelle for-Schleife verwenden:
AFAIK, da dies das Objekt aus der Sammlung herauszieht, müssten Sie zurück zur Sammlung gehen, um es zu finden.
Wenn Sie den Index benötigen, anstatt für jede Schleife eine zu verwenden, würde ich einfach eine for-Schleife verwenden, die durch die Indizes ging, damit Sie wissen, was Sie haben.
Es könnte am einfachsten sein, einfach einen separaten Zähler zu behalten:
%Vor%Nebenbei bemerkt, Python hat eine bequeme Möglichkeit, dies zu tun:
%Vor%Fügen Sie eine Indexvariable hinzu, die Sie für jede Iteration selbst erhöhen?
Sie können die Methode "FindIndex" verwenden.
%Vor%Aber innerhalb eines für jede Schleife, die wie viel zusätzlicher Aufwand scheint, und scheint das gleiche resultierende Problem wie die "IndexOf" -Methode. Ich schlage vor, eine altmodische Indexiteration zu verwenden. Auf diese Weise haben Sie Ihren Index und Ihren Artikel.
%Vor%Tags und Links vb.net