for each
, in
Scorre una matrice o una raccolta. Questa parola chiave non standard è disponibile sia nei progetti C++/CLI che in progetti C++ nativi. Tuttavia, è preferibile usare un'istruzione standard basata su intervallo (C++).
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, è 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 in una raccolta, ma non è possibile aggiungere o eliminare elementi.
Vengono statements
eseguiti per ogni elemento nella matrice o nella 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.
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);
}
}
abcd
Testing
Common Language Runtime
Osservazioni:
La sintassi CLR è la stessa della sintassi All Runtimes , ad eccezione del seguente.
expression
Raccolta o espressione di matrice gestita. L'elemento della raccolta deve essere tale che il compilatore possa convertirlo da Object al identifier
tipo .
expression
restituisce un tipo che implementa IEnumerable, IEnumerable<T>o un tipo che definisce un GetEnumerator
metodo che 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);
}
}
abcd
Testing
Vedi anche
Estensioni componenti per le piattaforme runtime
Istruzione for basata su intervallo (C++)