分享方式:


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 eachin上下文相關關鍵詞

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

另請參閱

執行階段平台的元件延伸模組
以範圍為基礎的語句 (C++)