for each, in

Выполняет итерацию по массиву или коллекции. Эта нестандартная ключевое слово доступна как в проектах C++/CLI, так и в собственных проектах C++. Однако использование стандартного диапазона для инструкции (C++) предпочтительнее.

Все среды выполнения

Синтаксис

for each ( type identifier in expression ) {
statements
}

Параметры

type
Тип параметра identifier.

identifier
Переменная итерации, представляющая элемент коллекции. При identifier использовании оператора отслеживания ссылок можно изменить элемент.

expression
Выражение массива или коллекция. Элемент коллекции должен быть таким, чтобы компилятор мог преобразовать его в тип identifier.

statements
Один или несколько операторов для выполнения.

Замечания

Оператор for each используется для итерации по коллекции. Элементы в коллекции можно изменить, но не удается добавить или удалить элементы.

Они statements выполняются для каждого элемента в массиве или коллекции. После завершения итерации всех элементов коллекции управление передается следующему оператору после блока for each.

for eachи in являются контекстно-конфиденциальными ключевое слово.

Среда выполнения Windows

Требования

Параметр компилятора: /ZW

Пример

В этом примере показано использование 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);
   }
}
abcd
Testing

Среда CLR

Замечания

Синтаксис СРЕДЫ CLR совпадает с синтаксисом "Все среды выполнения" , за исключением следующего.

expression
Выражение управляемого массива или коллекция. Элемент коллекции должен быть таким, чтобы компилятор может преобразовать его из Objectidentifier типа.

expressionвычисляет тип, реализующий IEnumerableIEnumerable<T>или тип, определяющий GetEnumerator метод, который возвращает тип, IEnumerator реализующий или объявляющий все методы, определенные в IEnumerator.

Требования

Параметр компилятора: /clr

Пример

В этом примере показано использование 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);
   }
}
abcd
Testing

См. также

Расширения компонентов для платформ среды выполнения
Диапазон на основе инструкции (C++)