per ognuno, in
Utilizzare l'istruzione for each per scorrere una matrice o una raccolta.
Tutti i runtime
Sintassi
for each (type identifier in expression) {
statements
}
Parametri
type
Tipo di identifier.identifier
La variabile di iterazione che rappresenta l'elemento della raccolta.Quando identifier è un riferimento di rilevamento, è possibile modificare l'elemento.expression
Un'espressione di una matrice o di una raccolta.Il compilatore deve essere in grado di convertire l'elemento della raccolta al tipo identifier.statements
Una o più istruzioni da eseguire.
Note
L'istruzione di for each viene utilizzata per scorrere una raccolta.È possibile modificare gli elementi di una raccolta, ma non è possibile aggiungere o rimuovere elementi.
Le Istruzioni vengono eseguite per ogni elemento della matrice o della raccolta.Quando l'iterazione è stata completata per tutti gli elementi della raccolta, il controllo viene trasferito alla prima istruzione che segue il blocco for each.
for each e in rappresentano parole chiave sensibili al contesto, vedere Parole chiave sensibili al contesto (Estensioni del componente C++) per ulteriori informazioni.
Nell'ambiente di sviluppo, è possibile consultare la F1 Guida evidenziando la parola chiave, (for each) e premendo F1.
Per ulteriori informazioni, vedere
Esegue l'iterazione nella libreria STL utilizzando per ognuno
Procedura: Eseguire una reiterazione sulle matrici con per ognuno
Procedura: Ripetere su una raccolta definita dall'utente con per ognuno
Windows Runtime
(Non esistono commenti specifici per Windows Runtime per questa funzionalità del linguaggio.)
Requisiti
Opzione del compilatore: /ZW
Esempi
Esempio
In questo esempio viene illustrato come scorrere una stringa con for each.
// 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
La seguente tabella elenca le differenze della sintassi illustrata nella sezione Tutti i runtime specifica di C++/CLI.
Parametri
espressione
Un'espressione di una matrice gestita o di una raccolta.Il compilatore deve essere in grado di convertire l'elemento di una raccolta da Object al tipo identificatore.espressione restituisce un tipo che implementa IEnumerable, IEnumerable<T>, o un tipo che definisce un metodo di GetEnumerator.Nel secondo caso, GetEnumerator dovrebbe restituire un tipo che implementa IEnumerator o dichiarare tutti i metodi definiti in IEnumerator.
Requisiti
Opzione del compilatore: /clr
Esempi
Esempio
In questo esempio viene illustrato come scorrere una stringa con for each.
// 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