2012-03-24 59 views
-2

可能重复:
Concatenating a C# List of byte[]列表的byte []的一个大的byte []

我有byte[]名单,我想这个名单结合起来,一个大byte[] 。我尝试了几种方法,但当我尝试合并字节时,似乎丢失了一些数据。

下面是我试过的方法之一:

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

我在这里的问题是,我怎么能结合的byte[]列表变成一个大byte[],并确保无数据丢失。只要它有效,效率在这个问题上就不是问题。

所有的帮助非常感谢。

+2

您尝试过的东西,但这样做会给你一个IEnumerable<byte>对象“它没有工作”。你“似乎丢失了数据”。更详细地描述这一点。 – 2012-03-24 11:26:44

+0

该代码中没有任何内容会丢失任何数据。数据来自哪里?数据是否可能在早期阶段就已经丢失? – Guffa 2012-03-24 11:45:13

回答

2
listOfBytes.SelectMany(x => x).ToArray(); 
+0

尽管这应该起作用,但它与问题中的内容是一样的:“Cast ()”和“Select(x => x)”都无效。如果问题*中的代码段不工作,您的答案也不会。 – hvd 2012-03-24 11:33:42

+0

@ hvd我发布之前测试过它:)我不知道OP做错了什么。 – 2012-03-24 11:34:45

0

只需使用SelectMany()

listOfBytes.SelectMany(n => n); 

,如果你想将它转换为byte [],您可以通过

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