Каков наиболее эффективный способ преобразования std :: vector в список .NET?
Чтобы дать некоторый контекст, я обертываю неуправляемый класс C ++ с C ++ / CLI.Класс C ++ / CLI содержит указатель на класс C ++, и у меня есть обертка для каждого открытого метода.
Один метод возвращает std :: vector, поэтому в моей обертке я собирался вернуть класс .NETСписок.Т.е.
// unmanaged class
class A
{
public:
std::vector<int> runList();
}
// managed class
public ref class A
{
public:
// the below is obviously extremely inefficient
List<UInt32> MethodA()
{
std::vector<unsigned int> runList = mpChannelNode->runList();
std::vector<unsigned int>::iterator itr;
List<UInt32> list = gcnew List<UInt32>();
for (itr = runList.begin(); itr != runList.end(); itr++)
{
list.Add(*itr);
}
return list;
}
private:
A* mpChannelNode;
}
Как я могу сделать это более эффективным?Не стесняйтесь рекомендовать другой тип возврата для класса .NET.Предположим, мне просто нужно эффективно перенести этот вектор в управляемый мир в любой форме.