【发布时间】:2015-11-11 10:09:35
【问题描述】:
我需要将浮点数组作为字符串发送。在应用的上下文中,我们需要尽可能好的性能。
根据我对 SO 的阅读,快速解决方案都意味着首先将浮点数组转换为字节数组,然后使用 base64 或 getBytes/getString 以及 cp1852 编码。
所以可以避免 c# 中的中间字节数组吗?
(当然,我希望同样快地进行相反的转换)
【问题讨论】:
-
有什么理由不能只在 Float 上调用 ToString 吗?即 var str = floats.select(f=>f.ToString())
-
@MikeT OP 需要
string。这将给IEnumerable<string> -
所以他想将浮点数组的内部二进制表示转换为字符串,而不是将浮点值本身转换为字符串?也就是说,他想把一个字节数组转换成一个字符串。
-
"那么在c#中可以避免中间字节数组吗?"中间字节数组有什么问题?时间?内存管理?为什么要消除它?
-
如果性能是主要目标,那么您需要将所有内容保持在尽可能低的级别,因为您堆积的抽象级别越多,涉及的处理就越多,例如将浮点数转换为bytes 大约是您可以获得的最低级别,任何其他看起来更漂亮的解决方案都会降低效率