Sdílet prostřednictvím


pro každý v

Pro iterování polem nebo kolekcí použijte příkaz for each.

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 je identifier sledovaným odkazem, lze tento prvek upravit.

  • expression
    Výraz pole nebo kolekce.Kompilátor musí být schopen převést prvek kolekce 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 kolekcí.Prvky v kolekci je možné měnit, ale nelze je přidávat ani odstraňovat.

Příkazy jsou spouštěny pro každý prvek pole nebo kolekce.Po dokončení iterace u všech prvků v kolekci je kontrola předána dalšímu příkazu následujícímu po bloku for each.

Klíčová slova for each a in jsou kontextově citlivá, další informace naleznete v tématu Kontextově závislá klíčová slova (rozšíření komponent C++).

Ve vývojovém prostředí lze získat nápovědu zvýrazněním klíčového slova (for each) a stisknutím klávesy F1.

Další informace naleznete v tématu:

Windows Runtime

(Pro modul Windows Runtime neexistují žádné specifické poznámky pro tuto funkci jazyka).

ms177202.collapse_all(cs-cz,VS.110).gifPožadavky

Možnost kompilátoru: /ZW

ms177202.collapse_all(cs-cz,VS.110).gifPříklady

Příklad

Tento příklad ukazuje, jak iterovat řetězec pomocí 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ýsledek

  
  

Common Language Runtime

Následující tabulka vypisuje odlišnosti od syntaxe uvedené v oddíle Všechny moduly runtime specifické pro jazyk C++/CLI.

Parametry

  • výraz
    Výraz spravovaného pole nebo kolekce.Kompilátor musí být schopen převést prvek kolekce z typu Object na typ identifikátoru.

    výraz je vyhodnocen jako typ, který implementuje IEnumerable, IEnumerable<T>, nebo typ, který definuje metoda GetEnumerator.V takovém případě by metoda GetEnumerator měla vrátit typ, který implementuje IEnumerator nebo deklaruje všechny metody, které jsou v IEnumerator definovány.

ms177202.collapse_all(cs-cz,VS.110).gifPožadavky

Možnost kompilátoru: /clr

ms177202.collapse_all(cs-cz,VS.110).gifPříklady

Příklad

Tento příklad ukazuje, jak iterovat řetězec pomocí 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ýsledek

  
  

Viz také

Koncepty

Součást rozšíření pro Runtime platformy