for each
, in
Wykonuje iterację przez tablicę lub kolekcję. To niestandardowe słowo kluczowe jest dostępne zarówno w projektach C++/CLI, jak i natywnym języku C++. Jednak użycie standardowego zakresu dla instrukcji (C++) jest preferowane.
Wszystkie środowiska uruchomieniowe
Składnia
for each (
type
identifier
in
expression
) {
statements
}
Parametry
type
Typ .identifier
identifier
Zmienna iteracyjna, która reprezentuje element kolekcji. Gdy identifier
jest operatorem odwołania do śledzenia, można zmodyfikować element.
expression
Wyrażenie tablicy lub kolekcja. Element kolekcji musi być taki, że kompilator może przekonwertować go na identifier
typ.
statements
Jedna lub więcej instrukcji do wykonania.
Uwagi
Instrukcja for each
jest używana do iterowania po kolekcji. Elementy można modyfikować w kolekcji, ale nie można dodawać ani usuwać elementów.
Element statements
jest wykonywany dla każdego elementu w tablicy lub kolekcji. Po zakończeniu iteracji dla wszystkich elementów kolekcji kontrolka jest przenoszona do instrukcji, która następuje for each
po bloku.
for each
i in
są słowami kluczowymi kontekstowym.
Środowisko wykonawcze systemu Windows
Wymagania
Opcja kompilatora: /ZW
Przykład
W tym przykładzie pokazano, jak używać for each
do iterowania ciągu.
// 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
środowiska uruchomieniowe w trakcie wykonania
Uwagi
Składnia clR jest taka sama jak składnia Wszystkie środowiska uruchomieniowe, z wyjątkiem poniższych .
expression
Wyrażenie tablicy zarządzanej lub kolekcja. Element kolekcji musi być taki, że kompilator może przekonwertować go z Object na identifier
typ.
expression
metoda oblicza typ implementujący IEnumerableIEnumerable<T>, lub typ definiujący metodę GetEnumerator
zwracającą typ implementujący IEnumerator lub deklarujący wszystkie metody zdefiniowane w IEnumerator
metodzie .
Wymagania
Opcja kompilatora: /clr
Przykład
W tym przykładzie pokazano, jak używać for each
do iterowania ciągu.
// 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
Zobacz też
Component Extensions dla platform środowiska uruchomieniowego
Oparty na zakresie dla instrukcji (C++)