【问题标题】:List of byte[] to one big byte[] [duplicate]字节 [] 到一个大字节 [] 的列表 [重复]
【发布时间】:2012-03-24 11:21:51
【问题描述】:

可能重复:
Concatenating a C# List of byte[]

我有一个byte[] 的列表,我想将此列表合并到一个大的byte[] 中。我尝试了几种方法,但是当我尝试合并字节时似乎丢失了一些数据。

这是我尝试过的方法之一:

byte[] comebined = listOfBytes.Cast<byte[]>()
                   .Select(x => x)
                   .SelectMany(x => x).ToArray();

我的问题是如何将byte[] 列表合并成一个大byte[] 并确保没有数据丢失。只要有效,效率就不是问题。

非常感谢所有帮助。

【问题讨论】:

  • 你已经尝试了一些东西,但是“它没有用”。您“似乎丢失了数据”。更详细地描述这一点。
  • 该代码中没有任何内容会丢失任何数据。数据从何而来?数据有没有可能在更早的阶段就已经丢失了?

标签: c# list bytearray


【解决方案1】:
listOfBytes.SelectMany(x => x).ToArray();

【讨论】:

  • 虽然这应该可行,但它与问题中的内容相同:Cast&lt;byte[]&gt;()Select(x =&gt; x) 实际上什么都不做。如果问题中的 sn-p 不起作用,您的答案也不起作用。
  • @hvd 我在发布之前对其进行了测试 :) 我不知道 OP 做错了什么。
【解决方案2】:

只需使用SelectMany()

listOfBytes.SelectMany(n => n); 

如果你想将它转换为字节[],会给你一个IEnumerable&lt;byte&gt;对象,你可以这样做

listOfBytes.SelectMany(n => n).ToArray()

【讨论】:

    猜你喜欢
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 2019-02-22
    • 1970-01-01
    • 2016-03-28
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    相关资源
    最近更新 更多