2017-10-10 68 views
1

我有一個名爲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:// stackoverflow。 com/questions/22506274/in-c-sharp-what-the-default-value-of-bytes-when-creating-a-new-byte-array) – SeM

回答

10

你不這樣做,你不必這樣做。 byte的默認值爲0

因此,如果您創建了一個類型爲byte[]的數組,則陣列中的每個項目都具有默認值0

+0

爲什麼downvote?這個答案是正確的。如果你有更好的答案,請發佈。 –

-2

當你有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) –