Share via


Enumerator, objet

Permet d'énumérer les éléments contenus dans une collection.

varName = new Enumerator([collection])

Arguments

  • varName
    Obligatoire. Nom de la variable à laquelle l'énumérateur est assigné.

  • collection
    Facultatif. Tout objet implémentant l'interface IEnumerable, un tableau ou une collection par exemple.

Notes

Toutes les collections sont automatiquement énumérables dans JScript. En conséquence, il n'est pas nécessaire d'utiliser l'objet Enumerator pour accéder aux membres d'une collection. Vous pouvez accéder directement à un membre au moyen de l'instruction for...in. L'objet Enumerator est fourni pour des raisons de compatibilité descendante.

Les collections diffèrent des tableaux sur le point suivant : leurs membres ne sont pas directement accessibles. Au lieu d'utiliser des index comme pour les tableaux, vous pouvez uniquement pointer sur le premier élément ou sur l'élément suivant d'une collection.

L'objet Enumerator, qui permet d'accéder aux membres d'une collection, a un comportement similaire à celui de l'instruction For...Each de VBScript.

Vous pouvez créer une collection dans JScript en définissant une classe qui implémente IEnumerable. Il est également possible de créer des collections dans un autre langage (tel que Visual Basic) ou avec un objet ActiveXObject.

Exemple 1

Le code suivant utilise l'objet Enumerator pour imprimer les lettres des lecteurs accessibles ainsi que leurs noms (le cas échéant) :

// 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);
}

Selon le système, le résultat peut ressembler à ceci :

A - [Drive not ready]
C - DRV1
D - BACKUP
E - [Drive not ready]

Exemple 2

Le code de l'exemple 1 peut être réécrit pour fonctionner sans utiliser l'objet Enumerator. Dans ce cas-ci, vous accédez directement aux membres d'une énumération.

// 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);
}

Propriétés

L'objet Enumerator n'a pas de propriétés.

Méthodes

Enumerator, objet - méthodes

Configuration requise

Version 3

Voir aussi

Référence

new, opérateur

for...in, instruction