2009-05-12 12 views
18

Hola cómo utilizar el bucle foreach en el código administrado C++ usando vs2003.Cómo utilizar foreach en C++ cli en el código administrado

+1

Y acabo encontraron esta fantástica golosina en el blog de Jochen Kalmbach: la variable $ I oculta contiene el índice actual de la iteración. http://blog.kalmbach-software.de/2009/12/30/the-mystic-variable-i-during-for-each/ –

Respuesta

-7

no creo que VC++ tiene foreach

+0

bueno, hay std :: for_each, y Boost.Foreach, y normal para bucles, así que realmente no creo que esté del todo allí –

+1

No creo que ninguno de ellos se aplique automáticamente a IEnumerable. –

+0

Ciertamente no se encargarán de deshacerse del IEnumerable. – marklam

36

nunca he utilizado, pero this MSDN article indica la sintaxis general es:

for each(Type t in IEnumerable) 
{ 

} 
+1

Es lo mismo que C# pero con un espacio entre para y cada uno. – Skizz

+1

en VS2005 está bien bur en VS2003 da erroe.i no sé y se comporta así. – Cute

+1

Lindo, porque es nuevo en Visual C++ (http://msdn.microsoft.com/en-us/library/xey702bw(VS.80).aspx), no debe confundirse con Extensiones administradas para C++. –

1

Algo así como:

String^MyString = gcnew String("abcd"); 

for each (Char c in MyString) 

    Console::Write(c); 
+0

Cite tus fuentes. –

10

Matthew es en su mayoría correcto, pero aquí hay un bloque de código funcional;

/////// 
array<Type^>^ iterate_me = gcnew array<Type^>(2); 
iterate_me[0] = Type::GetType("Type"); 
iterate_me[1] = Type::GetType("System.Int32"); 
/////// 

for each(Type^ t in iterate_me) 
    Console::WriteLine(t); 

Los cambios fueron el tipo es una clase de referencia, por lo que utilizar "Tipo ^" no "Tipo" y que necesita una referencia de objeto real (iterate_me) ...

+0

Administrado C++ en VS 2003 es, lamentablemente, bastante diferente de C++. NET que se introdujo en VS 2005+. No hubo un bloque 'por cada'. ** C++ administrado debe ser absolutamente evitado. C++ .NET está bien para su uso. – pickypg

+0

Ahhh cierto, el título me confundió, decía "C++ cli ..." Pasé por alto la parte donde preguntaba sobre 2003. – RandomNickName42

+2

No es un gran problema. Solo quería asegurarme de que cualquier persona que encuentre esto en Google/Bing no vaya por la oscura senda del desarrollo de C++ administrado. – pickypg

Cuestiones relacionadas