gpt4 book ai didi

C# int64 列表到字节数组,反之亦然?

转载 作者:行者123 更新时间:2023-11-30 21:18:21 25 4
gpt4 key购买 nike

请告诉我铸件的优化解决方案:

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

谢谢你的帮助!!!

最佳答案

编辑,修复了正确的 8 字节转换,在转换回字节数组时效率也不是很高。

    public static List<Int64> ToList(byte[] bytes)
{
var list = new List<Int64>();
for (int i = 0; i < bytes.Length; i += sizeof(Int64))
list.Add(BitConverter.ToInt64(bytes, i));

return list;
}

public static byte[] ToBytes(List<Int64> list)
{
var byteList = list.ConvertAll(new Converter<Int64, byte[]>(Int64Converter));
List<byte> resultList = new List<byte>();

byteList.ForEach(x => { resultList.AddRange(x); });
return resultList.ToArray();
}

public static byte[] Int64Converter(Int64 x)
{
return BitConverter.GetBytes(x);
}

关于C# int64 列表到字节数组,反之亦然?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4290144/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com