我正在编写一个高性能的数据结构。我遇到的一个问题是,似乎似乎没有将数组的一部分复制到另一个数组(最好尽可能快)。我也使用泛型,所以我不确定如何使用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?
答案 0 :(得分:2)
您可以使用Array.Copy()
。
Array.Copy(source , 5, tmp, 0, tmp.Length);