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 macierzystych projektach C++.Jego stosowanie nie jest jednak zalecane.Rozważ użycie standardowego Range-based for — instrukcja (C++) zamiast tego.
Wszystkie środowiska wykonawcze
Składnia
for each (type identifier in expression) {
statements
}
Parametry
type
Typ identifier.identifier
Zmienna iteracyjna, która reprezentuje element kolekcji. Gdy identifier to % (Odwołanie śledzenia), możesz zmodyfikować element.expression
Wyrażenie tablicy lub kolekcja.Element kolekcji musi być taki, aby kompilator mógł go skonwertować do typu identifier.statements
Jedna lub więcej instrukcji do wykonania.
Uwagi
Instrukcja for each jest używana do iteracji kolekcji.Możesz modyfikować elementy w kolekcji, ale nie możesz dodawać ani usuwać elementów.
Instrukcje statements są wykonywane dla każdego elementu w tablicy lub w kolekcji.Po zakończeniu iteracji dla wszystkich elementów w kolekcji sterowanie jest przekazywane do kolejnej instrukcji po bloku for each.
Słowa for each i in są kontekstowymi słowami kluczowymi.
Informacje dodatkowe:
Porady: iterowanie przez tablice za pomocą instrukcji for each
Porady: iterowanie przez kolekcję ogólną za pomocą instrukcji for each
Porady: iterowanie przez kolekcję zdefiniowaną przez użytkownika za pomocą instrukcji for each
Środowisko wykonawcze systemu Windows
Wymagania
Opcja kompilatora: /ZW
Przykład
Ten przykład pokazuje sposób użycia for each do iteracji 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);
}
Dane wyjściowe
Środowisko uruchomieniowe języka wspólnego
Uwagi
Składnia CLR jest taka sama, jak składnia Wszystkie środowiska wykonawcze, z następującymi wyjątkami.
expression
Wyrażenie tablicy zarządzanej lub kolekcja.Element kolekcji musi być taki, aby kompilator mógł go skonwertować z typu Object do identifier.expression daje w wyniku typ implementujący obiekt IEnumerable, IEnumerable lub typ definiujący metodę GetEnumerator, która albo zwraca typ, który implementuje obiekt IEnumerator, albo deklaruje wszystkie metody, które są zdefiniowane w parametrze IEnumerator.
Wymagania
Opcja kompilatora: /clr
Przykład
Ten przykład pokazuje sposób użycia for each do iteracji 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);
}
Dane wyjściowe
Zobacz też
Koncepcje
Funkcje języka dla określania wartości docelowej do środowiska CLR