【发布时间】:2014-06-19 04:00:41
【问题描述】:
如何将字符串转换为 ushort 数组..
非常感谢您的帮助。
谢谢, 洛克什
【问题讨论】:
-
你打算用这个数组做什么 - 你需要一个尾随零,因为你要传递一个以零结尾的字符串吗?
标签: c#-3.0
如何将字符串转换为 ushort 数组..
非常感谢您的帮助。
谢谢, 洛克什
【问题讨论】:
标签: c#-3.0
string s = "test";
ushort[] result = s.ToCharArray().Select(c => (ushort)c).ToArray();
不确定这是否是最好的方法,但应该可以。
编辑:我不知道string 实现了IEnumerable。所以实际上你只需要:
ushort[] result = s.Select(c => (ushort)c).ToArray();
感谢 Jeff 指出这一点。
【讨论】:
如果您不需要可验证的 IL,则仅使用标准库的最快方法(避免完全复制字符串数据)是使用 Encoding.GetBytes 的不安全重载:
fixed (char* src = str) {
fixed (ushort* dst = arr) {
Encoding.Unicode.GetBytes(src, str.Length, (byte*)dst, arr.Length * 2);
}
}
【讨论】: