for each
, in
Itère dans un tableau ou une collection. Ce 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 each
et in
sont des mots clés qui respectent le contexte.
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 Object identifier
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++)