per ognuna di esse, in
Scorre una matrice o una raccolta. Questa parola chiave non standard è disponibile sia nei progetti C++/CLI sia nei progetti C++ nativi. Il suo utilizzo non è tuttavia consigliato. In alternativa, considerare l'utilizzo di un'Istruzione for basata su intervallo (C++) standard.
Tutti i runtime
Sintassi
for each (type identifier in expression) {
statements
}
Parametri
type
Tipo di identifier.identifier
Variabile di iterazione che rappresenta l'elemento della raccolta. Quando identifier è un Operatore di riferimento di rilevamento (Estensioni del componente C++), è possibile modificare l'elemento.expression
Raccolta o espressione di matrice. L'elemento della raccolta deve poter essere convertito dal compilatore nel tipo identifier.statements
Una o più istruzioni da eseguire.
Osservazioni
L'istruzione for each viene utilizzata per scorrere una raccolta. È possibile modificare gli elementi di una raccolta, ma non è possibile aggiungere o eliminare elementi.
Vengono eseguite statements per ogni elemento della matrice o della raccolta. Dopo che l'iterazione è stata completata per tutti gli elementi della raccolta, il controllo viene trasferito all'istruzione che segue il blocco for each.
for each e in sono parole chiave sensibili al contesto.
Per ulteriori informazioni:
Windows Runtime
Requisiti
Opzione del compilatore: /ZW
Esempio
In questo esempio viene illustrato come utilizzare for each per scorrere una stringa.
// 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);
}
Output
Common Language Runtime
Osservazioni
La sintassi CLR è uguale alla sintassi di tutti i runtime, ad eccezione di quanto segue.
expression
Raccolta o espressione di matrice gestita. L'elemento della raccolta deve poter essere convertito dal compilatore da Object al tipo identifier.expression restituisce un tipo che implementa IEnumerable, IEnumerable o un tipo che definisce un metodo GetEnumerator che a sua volta restituisce un tipo che implementa IEnumerator o dichiara tutti i metodi definiti in IEnumerator.
Requisiti
Opzione del compilatore: /clr
Esempio
In questo esempio viene illustrato come utilizzare for each per scorrere una stringa.
// 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);
}
Output