for each, in
Procesa una iteración a través de una matriz o colección. Esta palabra clave no estándar está disponible en C++/CLI y proyectos nativos de C++. Sin embargo, no se recomienda su uso. Considere la posibilidad de utilizar un Instrucción for basada en intervalo (C++) estándar en su lugar.
Todos los runtimes
Sintaxis
for each (type identifier in expression) {
statements
}
Parámetros
type
Tipo de identifier.identifier
Variable de iteración que representa el elemento de la colección. Cuando identifier es un % (referencia de seguimiento), puede modificar el elemento.expression
Colección o expresión de matriz. El elemento de la colección debe ser de un tipo que el compilador pueda convertir en el tipo identifier.statements
Instrucción o instrucciones que se van a ejecutar.
Comentarios
La instrucción for each se utiliza para procesar una iteración en una colección. Puede modificar los elementos de una colección, pero no puede agregar ni eliminar elementos.
Las instrucciones statements se ejecutan para cada elemento de la matriz o colección. Cuando la iteración se ha completado en todos los elementos de la colección, el control se transfiere a la instrucción que sigue al bloque for each.
for each e in son palabras clave contextuales.
Para obtener más información:
Windows en tiempo de ejecución
Requisitos
Opción del compilador: /ZW
Ejemplo
En este ejemplo se muestra cómo se usa for each para procesar una iteración en una cadena.
// 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);
}
Salida
Common Language Runtime
Comentarios
La sintaxis de CLR es igual que la de todos los runtimes, excepto por lo siguiente.
expression
Expresión o colección de matriz administrada. El elemento de la colección debe ser de un tipo que el compilador pueda convertir de Object al tipo identifier.expression se evalúa como un tipo que implementa IEnumerable, IEnumerable o un tipo que define un método GetEnumerator que devuelve un tipo que implementa IEnumerator o declara todos los métodos definidos en IEnumerator.
Requisitos
Opción del compilador: /clr
Ejemplo
En este ejemplo se muestra cómo se usa for each para procesar una iteración en una cadena.
// 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);
}
Salida