【问题标题】:How to convert a string to an ushort array如何将字符串转换为 ushort 数组
【发布时间】:2014-06-19 04:00:41
【问题描述】:

如何将字符串转换为 ushort 数组..

非常感谢您的帮助。

谢谢, 洛克什

【问题讨论】:

  • 你打算用这个数组做什么 - 你需要一个尾随零,因为你要传递一个以零结尾的字符串吗?

标签: c#-3.0


【解决方案1】:
string s = "test";
ushort[] result = s.ToCharArray().Select(c => (ushort)c).ToArray();

不确定这是否是最好的方法,但应该可以。

编辑:我不知道string 实现了IEnumerable。所以实际上你只需要:

ushort[] result = s.Select(c => (ushort)c).ToArray();

感谢 Jeff 指出这一点。

【讨论】:

  • +1,虽然不需要将字符串转换为数组。可以省略。
【解决方案2】:

如果您不需要可验证的 IL,则仅使用标准库的最快方法(避免完全复制字符串数据)是使用 Encoding.GetBytes 的不安全重载:

fixed (char* src = str) {
   fixed (ushort* dst = arr) {
       Encoding.Unicode.GetBytes(src, str.Length, (byte*)dst, arr.Length * 2);
   }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-03
    • 2016-03-11
    相关资源
    最近更新 更多