簡體   English   中英

如何在C#中將結構數組轉換為字節數組?

[英]How to convert Struct Array to Byte Array in c#?

使用Buffer.BlockCopy()可以很容易地將原始類型轉換為字節。

但是,如果我有一個DateTime數組,應該使用哪個函數將DateTime []轉換為byte []?

如果我的結構大小恆定(這意味着我可以使用Marshal將結構轉換為byte []),應該使用哪種方式將T [](結構數組)轉換為byte []?

如果您正在尋找底層內存表示形式的副本,那么一種方法是僅訪問unsafe的數據-類似於:

// invent some data
DateTime[] original = new DateTime[10];
for (int i = 0; i < original.Length; i++)
    original[i] = new DateTime(2014, 1, i + 1);

byte[] blob = new byte[original.Length * sizeof(DateTime)];

fixed (DateTime* src = original)
fixed (byte* dest = blob)
{
    DateTime* typedDest = (DateTime*)dest;
    for(int i = 0; i < original.Length; i++)
    {
        typedDest[i] = src[i];
    }
} 

然而,這是巨大的取決於你所期望的內容byte[]要算賬,你打算用它做什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM