gpt4 book ai didi

c# - 使用填充将字节数组转换为 int 数组

转载 作者:太空宇宙 更新时间:2023-11-03 18:32:11 25 4
gpt4 key购买 nike

我知道我可以使用以下方法将字节数组转换为 int 数组:

int[] bytesAsInts = yourBytes.Select(x => (int)x).ToArray();

如何将字节数组转换为固定大小的 int 数组,并用 0x00 填充剩余部分?

例如,我的字节数组是 10 个字节,我想创建一个长度为 14 的 int 数组。代码应该转换我的字节数组的 10 个字节,并用 0x00 填充剩余的 4 个字节

最佳答案

自己编写一个可以填充序列的可重用扩展方法:

static IEnumerable<T> AppendPadding(this IEnumerable<T> items, int totalCount, T paddingItem) {
int count = 0;
foreach (var item in items) {
yield return item;
count++;
}

for (int i = count; i < totalCount; i++)
yield return paddingItem;
}

然后像这样使用它:

int[] bytesAsInts = yourBytes.Select(x => (int)x).AppendPadding(14, 0).ToArray();

这适用于任何类型的序列,只需对序列进行一次线性传递。它也很懒惰。抽象出填充序列的问题可以让您从主要算法中消除执行填充的复杂性。它现在隐藏在其他一些没人关心的地方。排除不重要的细节会产生干净的代码,因为所有的复杂性都隐藏在定义良好的接口(interface)之后。

关于c# - 使用填充将字节数组转换为 int 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20741632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com