for each
, in
Procesa una iteración a través de una matriz o colección. Esta palabra clave no estándar está disponible tanto en proyectos de C++/CLI como en proyectos nativos de C++. Sin embargo, se prefiere usar un rango estándar basado en la instrucción (C++), 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 Operador de 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
y in
son palabras clave contextuales.
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);
}
}
abcd
Testing
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 del tipo Object al identifier
.
expression
se evalúa como un tipo que implementa IEnumerable, IEnumerable<T>, 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);
}
}
abcd
Testing
Consulte también
Extensiones de componentes para plataformas de tiempo de ejecución
Instrucción for basada en intervalo (C++)