2012-07-20 41 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