如何将数组初始化为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;
}
你不这样做,你不必这样做。 byte
的默认值为0
。
因此,如果您创建了一个类型为byte[]
的数组,则阵列中的每个项目都具有默认值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);
你的答案似乎错过了它关于初始值的观点,而不是关于替换数组中现有的值。然而,如果你想用**非默认**值进行初始化,你的LINQ建议是OP的工作解决方案。 – Flater
我想和希望,OP想要将现有数组的项目替换为'0';)。 –
那么如果OP想要将现有元素设置为零,他们应该使用['Array.Clear()'](https://msdn.microsoft.com/en-us/library/system.array.clear%28v= vs.110%29.aspx?f = 255&MSPPError = -2147217396) –
数组已被初始化为0,因为'default(byte)'为'0' – DiskJunky
[在C#中创建新字节数组时,什么是字节的默认值?](https:// *。 com/questions/22506274/in-c-sharp-what-the-default-value-of-bytes-when-creating-a-new-byte-array) – SeM