Enumerator-Objekt
Aktualisiert: November 2007
Ermöglicht das Aufzählen der Elemente in einer Auflistung.
varName = new Enumerator([collection])
Argumente
varName
Erforderlich. Der Variablenname, dem der Enumerator zugewiesen wird.collection
Optional. Ein beliebiges Objekt, z. B. ein Array oder eine Auflistung, das die IEnumerable-Schnittstelle implementiert.
Hinweise
Jede Auflistung ist in JScript automatisch aufzählbar. Aus diesem Grund brauchen Sie für den Zugriff auf die Member einer Auflistung nicht das Enumerator-Objekt zu verwenden. Mithilfe der for...in-Anweisung können Sie auf jeden Member direkt zugreifen. Das Enumerator-Objekt steht zur Verfügung, um Abwärtskompatibilität zu gewährleisten.
Auflistungen unterscheiden sich von Arrays dadurch, dass auf die Member einer Auflistung nicht direkt zugegriffen werden kann. Anstatt wie bei Arrays Indizes zu verwenden, können Sie nur den aktuellen Elementzeiger auf das erste oder das folgende Element der Auflistung bewegen.
Das Enumerator-Objekt, mit denen auf die Member einer Auflistung zugegriffen werden kann, verhält sich ähnlich wie die For...Each-Anweisung in VBScript.
Sie können in JScript eine Auflistung erstellen, indem Sie eine Klasse definieren, die IEnumerable implementiert. Auflistungen können auch mithilfe einer anderen Sprache erstellt werden (z. B. Visual Basic) oder über ein ActiveXObject-Objekt.
Beispiel 1
Der folgende Code verwendet das Enumerator-Objekt, um die Buchstaben der verfügbaren Laufwerke und deren jeweiligen Namen (sofern verfügbar) auszugeben:
// Declare variables.
var n, x;
var fso : ActiveXObject = new ActiveXObject("Scripting.FileSystemObject");
// Create Enumerator on Drives.
var e : Enumerator = new Enumerator(fso.Drives);
for (;!e.atEnd();e.moveNext()) { // Loop over the drives collection.
x = e.item();
if (x.DriveType == 3) // See if network drive.
n = x.ShareName; // Get share name
else if (x.IsReady) // See if drive is ready.
n = x.VolumeName; // Get volume name.
else
n = "[Drive not ready]";
print(x.DriveLetter + " - " + n);
}
Abhängig vom System sieht die Ausgabe folgendermaßen aus:
A - [Drive not ready]
C - DRV1
D - BACKUP
E - [Drive not ready]
Beispiel 2
Wenn das Enumerator-Objekt nicht verwendet werden soll, kann der Code aus Beispiel 1 entsprechend angepasst werden. In diesem Beispiel wird direkt auf Member einer Auflistung zugegriffen.
// Declare variables.
var n, x;
var fso : ActiveXObject = new ActiveXObject("Scripting.FileSystemObject");
// The following three lines are not needed.
// var e : Enumerator = new Enumerator(fso.Drives);
// for (;!e.atEnd();e.moveNext()) {
// x = e.item();
// Access the members of the enumeration directly.
for (x in fso.Drives) { // Loop over the drives collection.
if (x.DriveType == 3) // See if network drive.
n = x.ShareName; // Get share name
else if (x.IsReady) // See if drive is ready.
n = x.VolumeName; // Get volume name.
else
n = "[Drive not ready]";
print(x.DriveLetter + " - " + n);
}
Eigenschaften
Das Enumerator-Objekt verfügt über keine Eigenschaften.
Methoden
Methoden des Enumerator-Objekts