c# - 如何将 ushorts 转换为字符串?
问题描述
下面的代码工作得很好。最后,变量 keyFileName 正确包含“K1_1”。但是必须有更好的方法来获取字符串。
ushort us1 = 0x4B31;
ushort us2 = 0x2E31;
string keyFileName = "";
keyFileName = Convert.ToString((char)(us1 >> 8)) +
Convert.ToString((char)(us1 & 0xFF)) +
Convert.ToString((char)(us2 >> 8)) +
Convert.ToString((char)(us2 & 0xFF));
难道没有比这更好的办法了吗?
解决方案
我们可以BitConverter.GetBytes()
用来获取ushort
值的字节。问题是字节序与我们转换为字符串所需的相反。
虽然我们仍然可以实现转换,但我认为您的原始解决方案更优雅。为了提供它,这是我提出的解决方案:
ushort us1 = 0x4B31;
ushort us2 = 0x2E31;
string keyFileName = "";
byte[] bytes = BitConverter.GetBytes(us1).Reverse()
.Concat(BitConverter.GetBytes(us2).Reverse())
.ToArray();
keyFileName = System.Text.Encoding.ASCII.GetString(bytes);
当然,我们可以将整个东西以相反的顺序连接在一起,然后反转整个结果字节集合,而不是反转单个短裤的字节。这应该会使这部分的阅读变得更容易一些:
byte[] bytes = BitConverter.GetBytes(us2)
.Concat(BitConverter.GetBytes(us1))
.Reverse()
.ToArray();
推荐阅读
- jquery - 在 jQuery 选项中使用 Hiddenfield 值
- ios - 如何让 SKEmitterNode 在 SwiftUI 中工作?
- javascript - jQuery::addClass() 行为异步?不会立即发生并被 confirm() 阻止
- opencart - 如何在 Opencart 上添加 HTML?
- xml - 使用 Go 解析 XML 文件
- python - 通过 python 中的 namedtuple csv 循环跟踪进度
- outlook-addin - 用于约会的 Outlook Web 加载项上下文菜单
- sql - 如何从 Oracle EXP 转储文件中提取表数据。转储的前 1MB 已损坏,数据库丢失
- c# - 如何使用 c# 将 url 图像作为 jpg 文件保存到数据库
- typescript - 打字稿范围扩大对象