Sdílet prostřednictvím


pro každý v

Prochází skrze pole nebo kolekci.Toto nestandardní klíčové slovo je k dispozici v projektech v jazyce C++/CLI a v nativním jazyce C++.Jeho použití se však nedoporučuje.Zvažte namísto něj použití standardního příkazu Příkaz For založený na rozsahu (C++).

Všechny moduly runtime

Syntaxe

for each (type identifier in expression) {
   statements
}

Parametry

  • type
    Typ identifier.

  • identifier
    Iterační proměnná, která představuje prvek kolekce. Jestliže identifier je Operátor sledovacího odkazu (rozšíření komponent C++), lze tento prvek upravit.

  • expression
    Výraz pole nebo kolekce.Prvek kolekce musí být takový, aby jej kompilátor mohl převést na typ identifier.

  • statements
    Jeden nebo více příkazů ke spuštění.

Poznámky

Příkaz for each se používá k iteraci v rámci kolekce.Prvky v kolekci je možné měnit, ale nelze je přidávat ani odstraňovat.

Příkazy statements jsou spouštěny pro každý prvek pole nebo kolekce.Po dokončení iterace pro všechny prvky v kolekci je kontrola předána příkazu, který následuje po bloku for each.

for each a in jsou kontextová klíčová slova.

Další informace:

prostředí Windows Runtime

Požadavky

Možnost kompilátoru: /ZW

Příklad

Tento příklad ukazuje, jak k iteraci pomocí řetězce využít klíčové slovo for each.

// 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);
}

Výstup

  
  

Common Language Runtime

Poznámky

Syntaxe CLR je stejná jako syntaxe Všechny moduly runtime s výjimkou následujícího.

  • expression
    Výraz spravovaného pole nebo kolekce.Prvek kolekce musí být takový, aby jej kompilátor mohl převést z typu Object na typ identifier.

    expression je vyhodnocen jako typ, který implementuje IEnumerable, IEnumerable nebo typ, který definuje metodu GetEnumerator, aby vrátil typ, který implementuje IEnumerator nebo deklaruje všechny metody, které jsou definovány v IEnumerator.

Požadavky

Možnost kompilátoru: /clr

Příklad

Tento příklad ukazuje, jak k iteraci pomocí řetězce využít klíčové slovo for each.

// 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);
}

Výstup

  
  

Viz také

Koncepty

Rozšíření komponent pro platformy běhového prostředí