バイト配列から最後の8バイトを読み取る必要があります。今すぐこのようにしています:バイト配列から最後のバイトを取得
last8 = data.Reverse().Take(8).Reverse();
これを実行する方法はありますか?
バイト配列から最後の8バイトを読み取る必要があります。今すぐこのようにしています:バイト配列から最後のバイトを取得
last8 = data.Reverse().Take(8).Reverse();
これを実行する方法はありますか?
例えば使用Array.Copy:
byte[] data = ...;
byte[] last8 = new byte[8];
Array.Copy(data, data.Length-8, last8, 0, 8);
data.Skip(data.Count - 8)
(データが既に列挙されている場合、たとえばArray
またはList
)を使用することもできます。これについて
何:
var last8 = data.Skip(data.Length - 8);
は二回配列を逆転させるステップを救います。
Skipは、配列全体が目的のインデックスに到達するまで(ほとんど)移動する必要があります。 penarturのコメントが正しければ、Reverse()。Take(8)は8つ以上の項目を対象とします。 8が一定であり、配列のサイズが大きくなる可能性があるので、後者が好ましいと思われる。 – Timo
こと、またはあなたがArray.Copy' – leppie
ザ・コピーはおそらく逆の操作はサイズによっては、非常にコストがかかることがあるため、使用するための最良の方法である '使用することができます。特にデータが大きい場合は特にそうです。 –
あなたはどういう意味がありますか?もっと早く?より読みやすい? – zmbq