針對每一個,在

使用 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 執行階段特定備註)。

ms177202.collapse_all(zh-tw,VS.110).gif需求

編譯器選項: /ZW

ms177202.collapse_all(zh-tw,VS.110).gif範例

範例

這個範例顯示如何藉由使用 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 集合的項目至 識別項 型別。

    對實作 IEnumerableIEnumerable<T>或一個型別定義 GetEnumerator 方法型別的運算式 評估。在後者的情況下,如果任一個通常會傳回在 IEnumerator 實作 IEnumerator 或宣告所有方法定義的型別。

ms177202.collapse_all(zh-tw,VS.110).gif需求

編譯器選項: /clr

ms177202.collapse_all(zh-tw,VS.110).gif範例

範例

這個範例顯示如何藉由使用 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

  
  

請參閱

概念

執行階段平台的元件擴充功能