byte[] digits;
nバイト数で作成するには?
できることはわかっていますEnumerable.Range(1, n).ToArray();
が、これにより int[] が作成されます。byte[] を作成する方法はありますか?
私の優先事項は速いパフォーマンスです。これを念頭に置いて、これを作成できるより高速な方法 (コードを少し増やす) はありますか?
byte[] digits;
nバイト数で作成するには?
できることはわかっていますEnumerable.Range(1, n).ToArray();
が、これにより int[] が作成されます。byte[] を作成する方法はありますか?
私の優先事項は速いパフォーマンスです。これを念頭に置いて、これを作成できるより高速な方法 (コードを少し増やす) はありますか?
LINQが本当に好きなら、
byte[] digits = Enumerable.Range(1, n).Select(i => (byte)i).ToArray();
可能性もあります
byte[] digits = new byte[n];
for (byte b = 1; b <= n; ++b)
digits[b - 1] = b;
バイト配列インスタンスを作成するだけでは何が問題なのですか?
byte[] digits = new byte[n];
1 から n までの値で初期化する場合は、次のように考えます。
for(int i = 1; i <= n; i++)
digits[i-1] = (byte)i; // index is 0-based
また、できるだけ早く目的の結果を得ることができます。もちろん、ここで n < 256!
バイト配列を作成して1〜nバイトで埋めるには、配列を作成してループを使用します。
byte[] digits = new byte[n];
for (int i = 0; i < n; i++)
{
digits[i] = (byte) (i + 1);
}
その場合は1などになることに注意してくださいdigits[0]
...それはあなたが望んでいたことですか?
ただし、これらの値をバイトとして格納する理由が純粋にパフォーマンスである場合は、おそらくマイクロ最適化しています。あなたのパフォーマンスの目標は何ですか?代わりに使用する場合int[]
、それはそれらを見逃しますか?このデータの自然なタイプは何ですか?何に使ってるの?
次のようなことができます:
byte[] digits=new byte[2024];