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 insł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.

expressionmetoda 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 IEnumeratormetodzie .

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