for each
, in
逐一查看陣列或集合。 此非標準關鍵詞可在 C++/CLI 和原生C++專案中使用。 不過,最好改為使用標準 Range 型 for Statement (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 語法與 所有運行時間 語法相同,但如下所示。
expression
Managed 陣列運算式或集合。 集合項目必須能夠讓編譯程式從 Object identifier
轉換成 類型。
expression
評估為實作、 IEnumerable<T>或 型別的IEnumerable型別,該型別會定義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