gpt4 book ai didi

c# - 合并多个字节数组c#

转载 作者:行者123 更新时间:2023-12-02 00:43:21 26 4
gpt4 key购买 nike

我想合并多个字节数组但失败了。最终数组仅显示最后添加的字节数组,而不是所有字节数组。以下是我的尝试。

List<byte[]> d = new List<byte[]>();
foreach (var item in IDs)
{
obj = RequisitionsObj.GenerateLabOrderReq();

if (obj.Data != null)
{
d.Add(obj.Data);
}
}

byte[] final = Combine(d.SelectMany(a => a).ToArray());

private byte[] Combine(params byte[][] arrays)
{
byte[] rv = new byte[arrays.Sum(a => a.Length)];
int offset = 0;

foreach (byte[] array in arrays)
{
System.Buffer.BlockCopy(array, 0, rv, offset, array.Length);
offset += array.Length;
}

return rv;
}

最佳答案

您不需要 Combine 方法。只需使用 SelectMany:

List<byte[]> d = new List<byte[]>();
foreach (var item in IDs)
{
obj = RequisitionsObj.GenerateLabOrderReq();
if (obj.Data != null)
{
d.Add(obj.Data);
}

}

byte[] final = d.SelectMany(a => a).ToArray();

编辑

工作示例:

List<byte[]> d = new List<byte[]>();
byte[] b1 = new byte[] { 1, 2, 3, 4 };
byte[] b2 = new byte[] { 5, 6, 7, 8 };
d.Add(b1);
d.Add(b2);
byte[] b3 = d.SelectMany(a => a).ToArray(); // Content is 1,2,3,4,5,6,7,8

关于c# - 合并多个字节数组c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45343533/

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