Как я могу преобразовать список в байт [] в C #?

#c# #list #c#-2.0 #byte

#c# #Список #c #-2.0 #байт

Вопрос:

Могу ли я преобразовать с помощью for цикла?

Есть ли какой-нибудь лучший способ сделать это?

  for (int i = 0; i < myListByte.Count ;i  )
 {
     myArryByte[i] = myListByte[i];
 }
  

Комментарии:

1. Возможно ли переключиться на C # 3.0? Если да, используйте ToArray метод, если нет, используйте старый добрый подход «создать массив, скопировать значения в каждом цикле»

2. @Dyppl: toArray доступен для списка<> в версии 2.0. Переход на 3.0 для этого не требуется. Кроме того, не стоит переключать фреймворки ради одной удобной функции.

3. @Paul Sasik: вы правы, я совершенно забыл об этом и был уверен, что люди ссылаются на метод расширения LINQ. Спасибо!

4. Помните, что List и IList имеют разные методы, и IList не обязательно использовать toArray()…

5. Лично для работы с двоичными данными я бы предложил MemoryStream переделать List<byte> . Затем вы можете использовать GetBuffer() для доступа к огромному резервному буферу без дополнительного выделения; вам просто нужно помнить, что из него нужно читать только .Length байты; p

Ответ №1:

 myArryByte = myListByte.ToArray();
  

Ответ №2:

 List<byte> bytes = ...;

byte[] bArrary = bytes.ToArray();
  

Ответ №3:

Используйте метод toArray объекта List.

Ответ №4:

 byte[] arr = myListByte.ToArray();
  

Ответ №5:

Возможно, это то, что вы ищете:

 private void convertByteArray()
{
    List<byte> byteList = new List<byte>() {2, 3, 4};
    byte[] byteArray = byteList.ToArray<byte>();
}