【发布时间】:2011-05-16 11:09:02
【问题描述】:
请告诉我铸件的优化解决方案:
1)
public static byte[] ToBytes(List<Int64> list)
{
byte[] bytes = null;
//todo
return bytes;
}
2)
public static List<Int64> ToList(byte[] bytes)
{
List<Int64> list = null;
//todo
return list;
}
查看具有最小化复制和/或不安全代码(如果可以实现的话)的版本将非常有帮助。理想情况下,根本不需要复制数据。
更新:
我的问题是关于像 C++ 方式一样的转换:
__int64* ptrInt64 = (__int64*)ptrInt8;
和
__int8* ptrInt8 = (__int8*)ptrInt64
谢谢你的帮助!!!
【问题讨论】:
-
您想将每个字节转换为 Int64(反之亦然)还是 8 个字节的块? (Int64 的大小)
-
@BrokenGlass 我需要将每 8 个字节(以块为单位)转换为一个 Int64 值,反之亦然;)
-
您要的是
BitConverter解决方案还是memcpy解决方案? -
@Gabe 如果它是在 C++ 上,我最好要求转换: (__int8*)ptrInt64; (__int64*)ptrInt8;
标签: c# arrays list casting arraylist