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

  
  

Vea también

Conceptos

Características de Especificar CLR