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
Выражение управляемого массива или коллекция. Элемент коллекции должен быть таким, чтобы компилятор может преобразовать его из Object identifier
типа.
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++)