針對每一個,在
使用 for each 陳述式將陣列或集合中逐一查看的。
所有執行階段
語法
for each (type identifier in expression) {
statements
}
參數
type
identifier 的型別。identifier
表示集合中項目的反覆運算變數。 當 identifier 是追蹤參考時,您可以修改項目。expression
陣列運算式或集合。 編譯器必須能夠轉換集合項目為 identifier 型別。statements
要執行的一或多個陳述式。
備註
for each 陳述式是用來逐一查看集合。 修改集合中的項目是可行的,不過,您無法加入或刪除項目。
陳述式 為在陣列或集合中的每個元素。 反覆查看項目完成在集合中的所有項目之後,程式控制權會轉移到 for each 區塊之後的下一個陳述式。
for each 和 in 為敏感性內容關鍵字;請參閱 視內容而有所區別的關鍵字 (C++ 元件擴充功能) 以取得詳細資訊。
在開發環境中,您可以反白顯示關鍵字, (for each) 和按 F1 取得 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);
}
Output
Common Language Runtime
下表列出專屬於 C++/CLI 從在 所有執行階段 區段中所顯示的語法的差異。
參數
expression
Managed 陣列運算式或集合。 編譯器必須能轉換為 Object 集合的項目至 識別項 型別。對實作 IEnumerable、 IEnumerable<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);
}
Output