如何创建n个字节的数组

本文关键字:字节 数组 何创建 创建 | 更新日期: 2023-09-27 18:04:03

如何创建n字节数的byte[] digits; ?

我知道我可以做Enumerable.Range(1, n).ToArray();,但这会创建一个int[]。是否有一种方法来创建一个byte[]?

我优先考虑的是快速的性能。记住这一点,是否有一种更快的方法(稍微多一点代码)来创建它?

如何创建n个字节的数组

如果你真的喜欢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);
}

注意,那么digits[0]将是1等…这是你想要的吗?

但是,如果将这些值存储为字节的原因纯粹是出于性能考虑,那么可能是微优化。你的绩效目标是什么?如果你用int[]代替,会漏掉它们吗?该数据的自然类型是什么?你用它做什么?

你可以这样做:

byte[] digits=new byte[2024];