gpt4 book ai didi

c# - 将数组拆分为特定长度的子数组

转载 作者:行者123 更新时间:2023-11-30 23:28:53 27 4
gpt4 key购买 nike

我知道类似的问题被问过很多次。但是我没有找到我需要的解决方案,我自己也找不到。

我的场景:我有字节数组。现在我需要将它们转换为 bits,然后创建包含确切位数的数组。

我能够将它们转换成位并创建特定长度的数组,但每个索引中只有 8 位。

我的代码示例:

var blocks = byteArr.Select(byte => Convert.ToString(byte, 2).PadLeft(8, '0'))
.Select((byte, i) => new { Value = byte, Index = i })
.GroupBy(x => x.Index / 100)
.Select(grp => grp.Select(x => x.Value).ToArray())
.ToArray();

它返回 array .如您在屏幕截图中所见,它创建了“100 字节数组”数组,但我需要的是“100 位数组”数组或更好的字符串数组,其中每个字符串都有 100 位。

感谢您的回复和帮助。

最佳答案

尝试以下操作

var blocks = byteArr.SelectMany(myByte => Convert.ToString(myByte , 2).PadLeft(8, '0'))
.Select((bit, i) => new { Bit = bit, Index = i })
.GroupBy(x => x.Index / 100)
.Select(grp => new string(grp.Select(x => x.Bit).ToArray()))
.ToArray();

SelectMany 会将您的二进制字符串分解为单独的字符,然后您将按索引将它们分组为 100 个一组。最后,您只需创建那些“字符位”的新字符串。

关于c# - 将数组拆分为特定长度的子数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35780308/

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