Enumerator-Objekt

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

Anforderungen

Version 3

Siehe auch

Referenz

new-Operator

for...in-Anweisung