如何为整个数组赋值0

时间:2014-03-06 07:39:51

标签: c# arrays

我有一个数组。 int[] array = new int[10];。我想在不使用循环的情况下将'0'分配给整个数组意味着0将存储在所有索引中。我该怎么做。

2 个答案:

答案 0 :(得分:20)

创建后,所有数组项都将具有默认值,对于int,该值为0。所以,你不需要在这里做任何事情。

来自Arrays (C# Programming Guide)

  

数值数组元素的默认值设置为零,和   引用元素设置为null。


同样来自C#规范12.2 Array creation

  

由array-creation-expressions创建的数组元素始终是   初始化为默认值。

5.2 Default values

  

对于value-type的变量,默认值与   value-type的默认构造函数

计算的值

4.1.2 Default constructors

  

对于sbyte,byte,short,ushort,int,uint,long和ulong,   默认值为0.


  

但在分配其他值后,我希望所有索引再次为0   那么我该怎么做呢?

更新:您可以使用Array.Clear

  

将Array中的元素范围设置为零,为false或null,   取决于元素类型。

在你的情况下:

Array.Clear(array, 0, array.Length);

还要考虑使用List<int>而不是数组 - 它允许动态添加/删除项目。

答案 1 :(得分:12)

您根本不需要做任何事情。

由于int值类型,因此所有元素都默认为0

来自Arrays (C# Programming Guide)

  

数值数组元素的默认值设置为零,和   引用元素设置为null。


  

好的,如果我想将它分配给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>而不是数组。它具有更多功能,并创建一个干净的列表(没有任何默认值)。