2012-03-24 4 views
-2

Можно создать дубликат:
Concatenating a C# List of byte[]Список байт [] в один большой байт []

У меня есть список byte[], и я хотел бы объединить этот список один большой byte[] , Я пробовал несколько способов, но я, кажется, потерял некоторые данные, когда я пытаюсь объединить байты.

Вот один из способов, которые я попробовал:

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

Мой вопрос вот как я могу объединить список byte[] в один большой byte[] и убедившись, что ни один из данных не теряется. Эффективность не является проблемой в этом вопросе, если она работает.

Вся помощь очень ценится.

+2

Вы пытались что-то, но «это не сработало». Вы, кажется, потеряли данные ». Опишите это более подробно. –

+0

В этом коде нет ничего, что могло бы потерять любые данные. Откуда берутся данные? Возможно ли, что данные уже потеряны на более раннем этапе? – Guffa

ответ

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

Хотя это должно сработать, это то же самое, что и в вопросе: как «Cast ()», так и «Select (x => x)» эффективно ничего не делают. Если фрагмент в вопросе * не работает *, то и ваш ответ не будет. – hvd

+0

@hvd Я тестировал его перед публикацией :) Я не знаю, что делает OP неправильно. –

0

Просто используйте SelectMany()

listOfBytes.SelectMany(n => n); 

даст вам IEnumerable<byte> объект, если вы хотите, чтобы преобразовать его в байт [], вы можете сделать это

listOfBytes.SelectMany(n => n).ToArray() 
Смежные вопросы