Share via


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