如何将数组初始化为0而不使用for循环中的C#

问题描述:

我有一个名为Buffer的数组。我正在使用for循环将其内容初始化为0。我如何在C#中的单个语句中执行此操作?我不想使用for循环。如何将数组初始化为0而不使用for循环中的C#

byte[] Buffer = new byte[50]; 
int arrC = 0; 
// array initialization 
for (arrC = 0; arrC < 50; arrC++) 
{ 
    Buffer[arrC] = 0; 
} 
+6

数组已被初始化为0,因为'default(byte)'为'0' – DiskJunky

+1

[在C#中创建新字节数组时,什么是字节的默认值?](https:// *。 com/questions/22506274/in-c-sharp-what-the-default-value-of-bytes-when-creating-a-new-byte-array) – SeM

你不这样做,你不必这样做。 byte的默认值为0

因此,如果您创建了一个类型为byte[]的数组,则阵列中的每个项目都具有默认值0

+0

为什么downvote?这个答案是正确的。如果你有更好的答案,请发布。 –

当你有byte一个数组,具有一定的价值,然后你要替换其整个项目0的方式是:

buffer = new byte[buffer.Length]; 

buffer = buffer.Select(c => (byte)0).ToArray(); 

或 - 作为评论by @Matthew Watson--我认为这是将阵列物品设置为其默认设置的最佳选择

Array.Clear(buffer, 0, buffer.Length); 
+1

你的答案似乎错过了它关于初始值的观点,而不是关于替换数组中现有的值。然而,如果你想用**非默认**值进行初始化,你的LINQ建议是OP的工作解决方案。 – Flater

+0

我想和希望,OP想要将现有数组的项目替换为'0';)。 –

+2

那么如果OP想要将现有元素设置为零,他们应该使用['Array.Clear()'](https://msdn.microsoft.com/en-us/library/system.array.clear%28v= vs.110%29.aspx?f = 255&MSPPError = -2147217396) –