如何快速将数组的一部分复制到另一个数组?

时间:2012-11-13 02:32:07

标签: c# .net arrays performance sizeof

我正在编写一个高性能的数据结构。我遇到的一个问题是,似乎似乎没有将数组的一部分复制到另一个数组(最好尽可能快)。我也使用泛型,所以我不确定如何使用Buffer.BlockCopy,因为它需要字节地址,并且似乎无法客观地确定对象的大小。我知道Buffer.BlockCopy在字节级工作,但它是否也将填充计为一个字节?

示例:

var tmo=new T[5];
var source = new T[10];
for(int i=5;i<source.Length;i++)
{
  tmp[i-5]=source[i];
}

我如何以更快的方式执行此操作,如Array.CopyTo?

1 个答案:

答案 0 :(得分:2)

您可以使用Array.Copy()

Array.Copy(source , 5, tmp, 0, tmp.Length);