Udostępnij za pośrednictwem


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:

Ś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