0

高性能のデータ構造を書いています。私が遭遇した問題の1つは、配列の一部だけを別の配列に(できればできるだけ早く)コピーする方法がないように思われることです。私もジェネリックスを使用している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のように、これをより高速に行うにはどうすればよいですか?

4

1 に答える 1

2

を使用できますArray.Copy()

Array.Copy(source , 5, tmp, 0, tmp.Length);
于 2012-11-13T02:36:10.440 に答える