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.
expression
wertet einen Typ aus, der eine Methode implementiertIEnumerable, die eine GetEnumerator
Methode definiert, die entweder einen Typ zurückgibt, der alle in definierten IEnumerator
IEnumerator 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++)