如何在托管代码中的C++ cli中使用foreach

问题描述 投票:0回答:5

嗨,如何使用 vs2003 在托管代码 C++ 中使用 foreach 循环。

c++-cli
5个回答
47
投票

我从未使用过它,但是这篇 MSDN 文章指出一般语法就是:

for each(Type t in IEnumerable)
{

}

17
投票

Matthew 基本上是正确的,但这里有一个工作代码块;

///////
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);

更改是 Type 是一个引用类,因此您使用“Type^”而不是“Type”,并且您需要一个实际的对象引用(iterate_me)...


2
投票

类似:

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

for each ( Char c in MyString )

    Console::Write(c);

1
投票

从 VS2022 开始

for each
显然不再有效。相反,你可以这样做:

IEnumerator^ enumerator = myList->GetEnumerator();
while (enumerator->MoveNext())
{
    // Do stuff
}

-9
投票

我不认为VC++有foreach

© www.soinside.com 2019 - 2024. All rights reserved.