转换List< Byte[]比;到Byte[]
本文关键字:Byte List 转换 | 更新日期: 2023-09-27 18:10:32
我使用gtk#,我需要将List<Byte[]>
转换为Byte[]
。我在这里找到了这个操作的样本,但它是。net框架的样本,当我尝试用gtk#来做它时,我有一些编译错误:
"Type
System.Collections.Generic.List<byte[]>' does not contain a definition for
SelectMany' and no extension methodSelectMany' of type
System.Collections.Generic. "可以找到一个列表(你是吗缺少using指令或程序集引用?)(CS1061)".
我如何解决这个错误或者我可以使用其他gtk#的转换方法?
确保:
- 你正在使用。net框架3.5或更高版本。
- 你有一个System.Core的引用。
- 您有"正在使用系统"。
IEnumerable的扩展是以后的。net框架版本的一部分,gtk#可能没有它们,或者它们可能在另一个名称下。
一个简单的方法(不确定是否有更简单的方法)是计算数组需要的总大小,并将其初始化为该大小。然后循环遍历列表,将每个字节[]中的数据放入新字节[]中,方法是跟踪遍历数组的距离。
private static Byte[] ConvertList(List<Byte[]> list)
{
int totalLength = 0;
foreach (byte[] b in list)
{
totalLength += b.Length;
}
byte[] result = new byte[totalLength];
int currentPosition = 0;
foreach (byte[] byteArray in list)
{
foreach (byte b in byteArray)
{
result[currentPosition] = b;
currentPosition++;
}
}
return result;
}
private static Byte[] ConvertList(List<Byte[]> list)
{
List<Byte> tmpList = new List<byte>();
foreach (Byte[] byteArray in list)
foreach (Byte singleByte in byteArray)
tmpList.Add(singleByte);
return tmpList.ToArray();
}
几乎是另一个代码示例的简短版本。.Net Framework 2.0