Sdílet prostřednictvím


for each, in

Prochází skrze pole nebo kolekci. Toto nestandardní klíčové slovo je k dispozici v projektech C++/CLI i nativních C++. Místo toho se ale upřednostňuje použití standardního příkazu založeného 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. Pokud identifier je sledovací referenční operátor, můžete upravit prvek.

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

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

Poznámky

Příkaz for each se používá k iteraci kolekcí. Prvky v kolekci můžete upravovat, ale nemůžete přidávat ani odstraňovat prvky.

Spouští statements se pro každý prvek v matici nebo kolekci. Po dokončení iterace pro všechny prvky v kolekci se ovládací prvek přenese do příkazu, který následuje za blokem for each .

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

prostředí Windows Runtime

Požadavky

Možnost kompilátoru: /ZW

Příklad

Tento příklad ukazuje, jak iterovat for each řetězcem.

// 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

CLR (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. Element kolekce musí být takový, aby kompilátor jej mohl převést z Object typu identifier .

expressionvyhodnotí na typ, který implementuje , nebo typ, který definuje metoduGetEnumerator, která buď vrátí typ, který implementuje IEnumerator nebo deklaruje všechny metody, které jsou definovány v IEnumerator. IEnumerable<T>IEnumerable

Požadavky

Možnost kompilátoru: /clr

Příklad

Tento příklad ukazuje, jak iterovat for each řetězcem.

// 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

Viz také

Přípony komponent pro platformy běhového prostředí
Příkaz založený na rozsahu (C++)