#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>();
}