将List 转换为一个byte 数组

如何在一个byte[]数组或一个Stream转换List

SelectMany应该做的诀窍:

 var listOfArrays = new List(); byte[] array = listOfArrays .SelectMany(a => a) .ToArray(); 
 var myList = new List(); var myArray = myList.ToArray(); 

编辑:好的,事实certificate问题实际上是关于List – 在这种情况下,您需要使用SelectMany将序列序列展平为单个序列。

 var listOfArrays = new List(); var flattenedList = listOfArrays.SelectMany(bytes => bytes); var byteArray = flattenedList.ToArray(); 

文档来自http://msdn.microsoft.com/en-us/library/system.linq.enumerable.selectmany.aspx

您可以使用List .ToArray() 。

这可能有点草率,可以使用一些优化,但你得到它的要点

 var buffers = new List(); int totalLength = buffers.Sum( buffer => buffer.Length ); byte[] fullBuffer = new byte[totalLength]; int insertPosition = 0; foreach( byte[] buffer in buffers ) { buffer.CopyTo( fullBuffer, insertPosition ); insertPosition += buffer.Length; } 

如果您使用的是实际的类System.Collections.Generic.List ,请调用ToArray()。 它返回一个新的byte[]