2012-07-20 234 views
2

將兩個字節添加到現有字節數組中的最佳方法是什麼?如何快速將兩個字節添加到字節數組中?

我應該用Array.Copy嗎?

+0

職位事宜? – 2012-07-20 02:20:07

+1

你能更具體嗎?你在問增加數組中元素的數量嗎?你想在哪裏添加兩個字節? – 2012-07-20 02:30:10

+0

在「ICollection」界面中給出了「添加」的含義,對此問題的回答是否定的。你不能增加數組的大小;你只能用一個不同的更大的數組來替換它(正如user1501472所暗示的)。如果你需要同一個對象來增長,你應該使用一個List,就像user1501472在一個單獨的答案中所建議的那樣。 – phoog 2012-07-20 03:51:57

回答

2

嗯,這是一個有趣的主題。我已經做了一個微基準,並且,最快的方法是使用Array.Copy

檢查了這一點:Prepend to a C# Array

問候

2

使用列表,而不是一個byte [];它會提供的靈活性,這是不錯的表現明智

List<byte> l1 = new List<byte>() { 5, 6, 7, 10, 11, 12 }; 
List<byte> l2 = new List<byte> { 8, 9 }; 
l1.InsertRange(3, l2); 

然後,如果你需要回到一個字節不管什麼原因,你可以調用[] ...

l1.ToArray(); 
0

否則

byte[] newArray = new byte[theArray.Length + 1]; 
theArray.CopyTo(newArray, 1); 
newArray[0] = theNewByte; 
theArray = newArray; 
+0

你應該把這個和你的其他答案結合起來。 「否則」並不總是有意義的,因爲你的兩個答案可以以任何順序出現(它們在寫入時沒有排序)。 – 2012-07-20 03:01:19

+0

實際上,我的意思是爲我的第一篇文章添加評論,但錯誤地添加了另一篇文章。 – 2012-07-20 03:04:36

+1

@ user1501472然後您可以編輯您的第一個答案,將第二個答案的內容添加到該答案,然後刪除第二個答案。 – phoog 2012-07-20 06:53:26

相關問題