for each, in

Itère dans un tableau ou une collection. Cette mot clé non standard est disponible dans les projets C++/CLI et C++ natifs. Toutefois, l’utilisation d’une plage standard pour l’instruction (C++) est préférable, à la place.

Tous les runtimes

Syntaxe

for each ( type identifier in expression ) {
statements
}

Paramètres

type
Type d'élément identifier.

identifier
La variable d'itération qui représente l'élément de collection. Lorsqu’il identifier s’agit d’un opérateur de référence de suivi, vous pouvez modifier l’élément.

expression
Expression ou collection de tableaux. L'élément de collection doit pouvoir être converti par le compilateur en type d'élément identifier.

statements
Une ou plusieurs instructions à exécuter.

Notes

L’instruction for each permet d’itérer au sein d’une collection. Vous pouvez modifier des éléments dans une collection, mais vous ne pouvez pas ajouter ou supprimer d’éléments.

Les statements éléments sont exécutés pour chaque élément du tableau ou de la collection. Une fois l'itération terminée pour tous les éléments de la collection, le contrôle est transféré à l'instruction placée après le bloc for each.

for eachet in respectent les mot clé contextuelles.

Windows Runtime

Spécifications

Option du compilateur : /ZW

Exemple

Cet exemple montre comment utiliser for each pour itérer au sein d'une chaîne.

// for_each_string1.cpp
// compile with: /ZW
#include <stdio.h>
using namespace Platform;

ref struct MyClass
{
   property String^ MyStringProperty;
};

int main()
{
   String^ MyString = ref new String("abcd");

   for each ( char c in MyString )
   {
      wprintf("%c", c);
   }

   wprintf("\n");

   MyClass^ x = ref new MyClass();
   x->MyStringProperty = "Testing";

   for each( char c in x->MyStringProperty )
   {
      wprintf("%c", c);
   }
}
abcd
Testing

Common Language Runtime

Notes

La syntaxe CLR est identique à la syntaxe All Runtimes , sauf comme suit.

expression
Collection ou expression de tableau managé. L’élément de collection doit être tel que le compilateur peut le convertir en Objectidentifier type.

expression prend la valeur d’un type qui implémente IEnumerable, IEnumerable<T>ou d’un type qui définit une GetEnumerator méthode qui retourne un type qui implémente IEnumerator ou déclare toutes les méthodes définies dans IEnumerator.

Spécifications

Option du compilateur : /clr

Exemple

Cet exemple montre comment utiliser for each pour itérer au sein d'une chaîne.

// for_each_string2.cpp
// compile with: /clr
using namespace System;

ref struct MyClass
{
   property String ^ MyStringProperty;
};

int main()
{
   String ^ MyString = gcnew String("abcd");

   for each ( Char c in MyString )
   {
      Console::Write(c);
   }

   Console::WriteLine();

   MyClass ^x = gcnew MyClass();
   x->MyStringProperty = "Testing";

   for each( Char c in x->MyStringProperty )
   {
      Console::Write(c);
   }
}
abcd
Testing

Voir aussi

Extensions de composant pour les plateformes Runtime
Basé sur la plage pour l’instruction (C++)