[英]Convert List<Byte[]> to Byte[]
我使用Gtk#,需要將List<Byte[]>
轉換為Byte[]
。 我在這里找到了此操作的示例,但這是.NET Framework的示例,當我嘗試通過Gtk#進行操作時,出現了一些編譯錯誤:
“類型
System.Collections.Generic.List<byte[]>' does not contain a definition for
SelectMany'System.Collections.Generic.List<byte[]>' does not contain a definition for
,找不到SelectMany' of type
System.Collections.Generic.List'的擴展方法SelectMany' of type
(是否缺少using指令或裝配體參考?)(CS1061)”。
如何解決此錯誤,或者我可以使用其他Gtk#的其他轉換方式?
確保:
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;
}
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測試
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.