我使用Gtk#,我需要将List<Byte[]>转换为Byte[]。我找到了这个操作here的示例,但它是.NET框架的示例,当我试图通过Gtk#完成它时,我有一些编译错误:
“Type
System.Collections.Generic.List<byte[]>' does not contain a definition forSelectMany‘并没有找到扩展方法SelectMany(您是缺少了一个使用指令还是一个程序集引用?) (CS1061)”。
我如何解决这个错误,或者Gtk#的其他转换方法可以使用什么?
发布于 2013-04-24 07:02:11
确保:
发布于 2013-04-24 06:58:45
IEnumerable的扩展是后来的.net框架版本的一部分,Gtk#可能没有它们,或者它们可能在另一个名称下。
一个简单的方法(不确定是否有更简单的方法)是计算数组所需的总大小,并将其初始化到该大小。然后循环遍历列表,并将每个byte[]中的数据放入新的byte[]中,方法是跟踪您在数组中的距离。
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;
}https://stackoverflow.com/questions/16185255
复制相似问题