我想调整数组的大小,但我不希望所有附加的值都为零。
Array.Resize(ref range, range.Length + grow);
如果你假设附加的长度总是4个字节的倍数(刚好足以容纳一个浮点数),那么用float.MaxValue
或float.MinValue
来填充它的最佳方法是什么? / p>
答案 0 :(得分:3)
只需遍历添加的项目并为其指定值即可。编译器将生成代码,仅在循环外执行数组索引的范围检查,因此循环将非常有效。
int oldSize = range.Length;
Array.Resize(ref range, range.Length + grow);
for (int i = oldSize; i < range.Length; i++) {
range[i] = float.MinValue;
}
您应该知道Array.Resize
实际上并没有调整数组的大小,但它创建了一个具有所需大小的新数组,并从原始数组中复制数据。因此,如果您想要一种有效调整集合大小的方法,则根本不应该使用数组。根据您的需要,像List,数组列表或LinkedList可能会更好。