Wie erhalte ich den Index eines Objekts in einer For Each ... Next-Schleife?

7

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!

    
Simon 15.10.2008, 19:02
quelle

6 Antworten

12

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:

%Vor%     
Joel Coehoorn 15.10.2008, 19:07
quelle
12

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.

    
Mitchel Sellers 15.10.2008 19:05
quelle
6

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%     
Greg Hewgill 15.10.2008 19:05
quelle
2

initialisiere einfach eine Integer-Variable vor dem Eintritt in die Schleife und iteriere sie ...

%Vor%     
sebagomez 15.10.2008 19:04
quelle
1

Fügen Sie eine Indexvariable hinzu, die Sie für jede Iteration selbst erhöhen?

    
activout.se 15.10.2008 19:05
quelle
1

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%     
John Chuckran 15.10.2008 19:27
quelle

Tags und Links