在 C# 中有效地将字符串转换为字节数组(不使用编码)[重复]

Posted

技术标签:

【中文标题】在 C# 中有效地将字符串转换为字节数组(不使用编码)[重复]【英文标题】:Efficiently converting a string to a byte array in C# (Not with Encoding) [duplicate] 【发布时间】:2018-09-13 02:03:03 【问题描述】:

如何在不对每个元素使用Convert.ToByte() 的情况下将字符串"0100" 转换为byte 数组0,1,0,0?该字符串只能包含字符 0 到 9。

【问题讨论】:

以下链接应该会有所帮助 1) ***.com/questions/16072709/… 2) ***.com/questions/30545162/… 3) ***.com/questions/6254003/… 4) rextester.com/discussion/HHSUSW47299/… 您是假设字符串中的字符始终是 0-9 范围内的数字,还是始终采用 8 位字符集? @atur 我说不是编码,示例 A 变成 65。字节中只有 0 变成 0。 @JimMischel 是的,对不起,我会编辑这个。 @JP_99 : 几个链接没有编码。此外,查看所有答案,而不仅仅是接受的答案 【参考方案1】:

使用 linq

var bytes = "0100".Select(x => (byte)(x - '0')).ToArray();

【讨论】:

bytes的类型是什么? 我认为这将为您提供int 的数组。如果需要字节数组,则需要将 x - '0' 转换为 byte @EricLippert 你是对的 :)

以上是关于在 C# 中有效地将字符串转换为字节数组(不使用编码)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 C# 中尽可能快地将数组复制到结构数组

如何在 C# 中转换为字节时截断字符串?

如何将十六进制字符串转换为字节数组? [复制]

C# 校验并转换 16 进制字符串到字节数组

将字节数组转换为字符串在c#中不起作用

在 C# 中将字符串转换为字节数组