for each, in

Durchläuft ein Array oder eine Auflistung. Dieses nicht standardmäßige Schlüsselwort ist sowohl in C++/CLI- als auch in systemeigenen C++-Projekten verfügbar. Stattdessen wird die Verwendung eines standardbereichsbasierten For Statement (C++) bevorzugt.

Alle Laufzeiten

Syntax

for each ( type identifier in expression ) {
statements
}

Parameter

type
Der identifier-Typ.

identifier
Die Iterationsvariable, die das Auflistungselement darstellt. Wenn identifier es sich um einen Nachverfolgungsverweisoperator handelt, können Sie das Element ändern.

expression
Ein Arrayausdruck oder eine Auflistung. Das Auflistungselement muss zulassen, dass der Compiler es in den Typ identifier konvertieren kann.

statements
Eine oder mehrere auszuführende Anweisungen.

Hinweise

Die for each-Anweisung wird zum Durchlaufen einer Auflistung verwendet. Sie können Elemente in einer Auflistung ändern, aber keine Elemente hinzufügen oder löschen.

Die statements werden für jedes Element im Array oder in der Auflistung ausgeführt. Nachdem die Iteration alle Elemente in der Auflistung durchlaufen hat, wird die Steuerung an die nächste Anweisung, die auf den for each-Block folgt, übergeben.

for each und in sind kontextabhängige Schlüsselwörter.

Windows-Runtime

Anforderungen

Compileroption: /ZW

Beispiel

Dieses Beispiel zeigt, wie for each zum Durchlaufen einer Zeichenfolge verwendet wird.

// 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

Übersicht: Common Language Runtime (CLR)

Hinweise

Die CLR-Syntax ist identisch mit der Syntax "Alle Runtimes ", außer wie folgt.

expression
Ein verwalteter Arrayausdruck oder eine Auflistung. Das Sammlungselement muss so sein, dass der Compiler es in Object den identifier Typ konvertieren kann.

expressionwertet einen Typ aus, der eine Methode implementiertIEnumerable, die eine GetEnumerator Methode definiert, die entweder einen Typ zurückgibt, der alle in definierten IEnumeratorIEnumerator Methoden IEnumerable<T>implementiert oder deklariert.

Anforderungen

Compileroption: /clr

Beispiel

Dieses Beispiel zeigt, wie for each zum Durchlaufen einer Zeichenfolge verwendet wird.

// 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

Siehe auch

Komponentenerweiterungen für Laufzeitplattformen
Bereichsbasiert für Anweisung (C++)