QA@IT

配列の連結のベストプラクティスは

5273 PV

引き続き脱初心者を目指しています。

別途作成した二つの byte[] 配列(パケットヘッダとパケットエンティティ)を非破壊的にコピペして別の一つの配列に合成したく思います。ざっと調べた感じ、いくつか実現方法があるようですが、これを使うべきというのはありますでしょうか。できれば理由をうかがいたいです。

調べ方が悪くて他に何かもっとよい方法があるようでしたらそちらをぜひ教えてください。

回答

LINQを使ってConcatではどうでしょうか?

var foo = new byte[10];
var bar = new byte[1000];
var foobar = foo.Concat(bar);

コピーそのものの性能は比較してみないとわかりませんが、Concatは遅延実行なので実際に列挙されるまでコストが掛かりません。
http://msdn.microsoft.com/ja-jp/library/bb302894.aspx

編集 履歴 (0)
  • なるほど。今回は間違いなく使用する(パケットだし)ので遅延実行の恩恵はあまりありませんが、書き方は素直で気に入りました。 -
ウォッチ

この質問への回答やコメントをメールでお知らせします。