2012-03-24 62 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()