for each、in
配列またはコレクションを順番に反復に for each のステートメントを使用します。
すべてのランタイム
構文
for each (type identifier in expression) {
statements
}
パラメーター
type
identifier の型。identifier
コレクションの要素を表す反復変数。identifier が追跡参照の場合、要素を変更できます。expression
配列またはコレクション。コンパイラは identifier のコレクションの型に要素を変換できる必要があります。statements
実行する 1 つ以上のステートメントを指定します。
解説
コレクションを順番に反復に for each のステートメントが使用されます。コレクションの要素を変更することはできますが、要素を追加または削除できません。
ステートメント は、配列またはコレクションの各要素に対して実行されます。コレクション内の全要素に対する繰り返しが完了すると、制御は、for each ブロックに続く次のステートメントに移動します。
for each と in は状況依存のキーワードです。; 詳細については、状況依存のキーワード (C++ コンポーネント拡張) を参照してください。
開発環境では、キーワードをfor each)、(強調表示、キーを押すと、F1 ヘルプを取得できます。
詳細については、次のトピックを参照してください。
Windows ランタイム
(この言語機能の 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);
}
出力
共通言語ランタイム
C++/CLI に固有の すべてのランタイム に示す構文から次の表に、違いは、バッチ処理されます。
パラメーター
expression
マネージ配列またはコレクション。コンパイラは Object から 識別子 のコレクションの型に要素を変換できる必要があります。式 は IEnumerable、IEnumerable<T>、または GetEnumerator メソッドを定義する型を実装する型になります。後者の場合いずれかを返しますが IEnumerator を実装するか、すべての IEnumerator で定義されたメソッドを宣言する型が、GetEnumerator。
要件
コンパイラ オプション: /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);
}
出力