【发布时间】:2014-03-06 07:39:51
【问题描述】:
我有一个数组。 int[] array = new int[10];。我想在不使用循环的情况下将“0”分配给整个数组,这意味着 0 将存储在所有索引中。我该怎么做。
【问题讨论】:
我有一个数组。 int[] array = new int[10];。我想在不使用循环的情况下将“0”分配给整个数组,这意味着 0 将存储在所有索引中。我该怎么做。
【问题讨论】:
创建后,数组的所有项都将具有默认值,即 int 为 0。所以,你不需要在这里做任何事情。
来自Arrays (C# Programming Guide):
数值数组元素的默认值设置为零,并且 参考元素设置为空。
同样来自 C# 规范 12.2 Array creation
由数组创建表达式创建的数组元素总是 初始化为它们的默认值。
对于值类型的变量,默认值与 由值类型的默认构造函数计算的值
对于 sbyte、byte、short、ushort、int、uint、long 和 ulong, 默认值为 0。
但在分配其他值后,我希望所有索引再次为 0 那我该怎么做呢?
更新:您可以使用Array.Clear:
将 Array 中的元素范围设置为零、false 或 null, 取决于元素类型。
在你的情况下:
Array.Clear(array, 0, array.Length);
还可以考虑使用List<int> 而不是数组 - 它允许动态添加/删除项目。
【讨论】:
List<int> 而不是数组。这将允许您在需要时清除列表
uint 也适用吗?
你根本不需要做任何事情。
由于int 是一个值类型,所有元素都默认初始化为0。
来自Arrays (C# Programming Guide)
数值数组元素的默认值设置为零,并且 参考元素设置为空。
好的,如果我想将它分配给 3,那我该怎么做呢?
您可以使用 for 循环来分配它们;
int[] array = new int[10];
for(int i = 0; i < array.Length; i++)
array[i] = 3;
如果你想返回它们的默认值(在这种情况下是0),你可以创建一个新数组或者你可以使用Array.Clear这样的方法;
Array.Clear(array, 0, array.Length);
如果您真的不想使用任何循环,您可能需要使用List<int> 来代替数组。它有更多的功能,它创建了一个干净的列表(没有任何默认值)。
【讨论】:
:)