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