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++)