Anz*_*rio 2 .net vb.net c++-cli visual-c++
说我有一个阵列
array<double>^ buffer = gcnew array<double>(100);
Run Code Online (Sandbox Code Playgroud)
我想要一个像以下一样的功能:
void foo(array<double>^% buffer)
{
Array::Resize(buffer, 10);
}
Run Code Online (Sandbox Code Playgroud)
但是当你想修剪数组时,它不会分配和/或移动和缓冲[0].
一旦创建,.NET数组的大小就是不可变的.你不能修剪它; 你必须重新分配和复制.所以Array.Resize你已经完成了所需的一切.如果你真的不想这样做,也许只是忽略最后的元素.
要么; 使用List<T>,其封装的阵列,和不具有TrimExcess().在C#术语中:
var list = new List<int>(100);
// prints 0/100
Console.WriteLine("{0} / {1}", list.Count, list.Capacity);
list.Add(1);
list.Add(2);
list.Add(3);
// prints 3/100
Console.WriteLine("{0} / {1}", list.Count, list.Capacity);
list.TrimExcess();
// prints 3/3
Console.WriteLine("{0} / {1}", list.Count, list.Capacity);
Run Code Online (Sandbox Code Playgroud)