Her, içinde
Bir dizi veya koleksiyonu yinelemek için for each deyimini kullanın.
Tüm Çalışma Zamanları
Sözdizimi
for each (type identifier in expression) {
statements
}
Parametreler
type
identifier Türü.identifier
Koleksiyon öğesini temsil eden yineleme değişkeni.identifier bir izleme başvurusu olduğu zaman öğeyi değiştirebilirsiniz.expression
Bir dizi veya koleksiyon ifadesi.Derleyici koleksiyon öğesini identifier türüne dönüştürebilir olmalıdır.statements
Yürütülecek bir veya birden çok deyim.
Notlar
for each deyimi bir koleksiyon içinde yineleme için kullanılır.Bir koleksiyondaki öğeleri değiştirmek mümkündür, ancak ekleyemez veya öğeleri silemezsiniz.
Dizi veya koleksiyon içindeki her eleman için İfadeler yürütülür.Koleksiyondaki tüm öğeler için yineleme tamamlandıktan sonra denetim for each bloğundan sonraki deyime aktarılır.
for each ve in içerik-duyarlı anahtar sözcüklerdir; bkz: Bağlama Duyarlı Anahtar Sözcükler (C++ Bileşen Uzantıları) daha fazla bilgi için.
Geliştirme ortamında, anahtar sözcüğü vurgulayarak (for each) ve F1 tuşuna basarak, F1 Yardımı alabilirsiniz.
Daha fazla bilgi için bkz.
Nasıl yapılır: üzerinden genel bir koleksiyonu ile her biri için yineleme
Nasıl yapılır: kullanıcı tanımlı bir koleksiyonla üzerinden her biri için yineleme
Windows Çalışma Zamanı
(Bu dil özelliği için Windows Çalışma Zamanına özel bir açıklama yoktur.)
Gereksinimler
Derleyici seçeneği: /ZW
Örnekler
Örnek
Bu örnek, bir dize içinde for each ile nasıl yenileme yapılacağını gösterir.
// 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);
}
Çıktı
Ortak Dil Çalışma Zamanı
Aşağıdaki tabloda Tüm çalışma zamanları bölümünde gösterilen C++/CLI'a özel sözdizimi arasındaki farkları listeler.
Parametreler
ifade
Yönetilen bir dizi ifade veya koleksiyonu.Derleyici koleksiyon öğelerini Object öğesinden tanımlayıcı türüne dönüştürebilir olmalıdır.ifadeIEnumerable uygulayan bir tür değerlendirir IEnumerable<T>, veya GetEnumerator yöntemi tanımlayan bir tür.İkinci durumda, GetEnumerator IEnumerator veya IEnumerator içinde tanımlanan tüm yöntemleri bildiren bir tür döndürmelidir.
Gereksinimler
Derleyici seçeneği: /clr
Örnekler
Örnek
Bu örnek, bir dize içinde for each ile nasıl yenileme yapılacağını gösterir.
// 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);
}
Çıktı