for each, infor each, in

Выполняет итерацию по массиву или коллекции.Iterates through an array or collection. Это нестандартное ключевое слово доступно как в C++/CLI, так и в собственных проектах C++.This non-standard keyword is available in both C++/CLI and native C++ projects. Однако его использование не рекомендуется.However, its use is not recommended. Рекомендуется использовать стандартный по диапазону для инструкции (C++) вместо этого.Consider using a standard Range-based for Statement (C++) instead.

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

СинтаксисSyntax

для каждого ( тип идентификатор в выражение ) {}for each ( type identifier in expression ) {
    Инструкции    statements
}}

ПараметрыParameters

typetype
Тип параметра identifier.The type of identifier.

identifieridentifier
Переменная итерации, представляющая элемент коллекции.The iteration variable that represents the collection element. Когда identifierоператор отслеживания ссылок, этот элемент можно изменять.When identifier is a Tracking Reference Operator, you can modify the element.

Выражениеexpression
Выражение массива или коллекция.An array expression or collection. Элемент коллекции должен быть таким, чтобы компилятор мог преобразовать его в тип identifier.The collection element must be such that the compiler can convert it to the identifier type.

Инструкцииstatements
Один или несколько операторов для выполнения.One or more statements to be executed.

ПримечанияRemarks

Оператор for each используется для итерации по коллекции.The for each statement is used to iterate through a collection. Можно изменять элементы в коллекции, но добавление или удаление элементов невозможно.You can modify elements in a collection, but you cannot add or delete elements.

Инструкций выполняются для каждого элемента в массиве или коллекции.The statements are executed for each element in the array or collection. После завершения итерации всех элементов коллекции управление передается следующему оператору после блока for each.After the iteration has been completed for all the elements in the collection, control is transferred to the statement that follows the for each block.

for each и in являются контекстно-зависимые ключевые слова.for each and in are context-sensitive keywords.

Дополнительные сведения:For more information:

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

ТребованияRequirements

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

ПримерExample

В этом примере показано использование for each для итерации по строке.This example shows how to use for each to iterate through a string.

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

ВыводOutput

abcd

Testing

Среда CLRCommon Language Runtime

ЗаметкиRemarks

Синтаксис CLR совпадает со значением все среды выполнения синтаксис, за исключением следующего.The CLR syntax is the same as the All Runtimes syntax, except as follows.

Выражениеexpression
Выражение управляемого массива или коллекция.A managed array expression or collection. Элемент коллекции должен быть таким образом, чтобы компилятор мог преобразовать его из Object для идентификатор типа.The collection element must be such that the compiler can convert it from Object to the identifier type.

выражение результат имеет тип, реализующий IEnumerable, IEnumerable<T>, или тип, который определяет GetEnumerator метод, который либо возвращает тип, реализующий IEnumerator или объявляет все методы, которые определены в IEnumerator.expression evaluates to a type that implements IEnumerable, IEnumerable<T>, or a type that defines a GetEnumerator method that either returns a type that implements IEnumerator or declares all of the methods that are defined in IEnumerator.

ТребованияRequirements

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

ПримерExample

В этом примере показано использование for each для итерации по строке.This example shows how to use for each to iterate through a string.

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

ВыводOutput

abcd

Testing

См. такжеSee also

Расширения компонентов для платформ среды выполненияComponent Extensions for Runtime Platforms