C# 3.0 如何将字符串转换为ushort数组
如何将字符串转换为ushort数组 非常感谢你的帮助 谢谢, 洛克斯 不确定这是否是最好的方法,但它应该有效 编辑:我不知道C# 3.0 如何将字符串转换为ushort数组,c#-3.0,C# 3.0,如何将字符串转换为ushort数组 非常感谢你的帮助 谢谢, 洛克斯 不确定这是否是最好的方法,但它应该有效 编辑:我不知道string实现了IEnumerable。所以实际上你只需要: ushort[] result = s.Select(c => (ushort)c).ToArray(); 感谢Jeff指出这一点。如果您不需要可验证的IL,那么只使用标准库的最快方法(避免完全复制字符串数据)就是使用不安全的重载编码。GetBytes: fixed (char* src = str)
string
实现了IEnumerable
。所以实际上你只需要:
ushort[] result = s.Select(c => (ushort)c).ToArray();
感谢Jeff指出这一点。如果您不需要可验证的IL,那么只使用标准库的最快方法(避免完全复制字符串数据)就是使用不安全的重载
编码。GetBytes
:
fixed (char* src = str) {
fixed (ushort* dst = arr) {
Encoding.Unicode.GetBytes(src, str.Length, (byte*)dst, arr.Length * 2);
}
}
+1,但不需要将字符串转换为数组。可以忽略它。你将如何处理这个数组?你是否需要一个尾随的零,因为你要传递一个以零结尾的字符串?
fixed (char* src = str) {
fixed (ushort* dst = arr) {
Encoding.Unicode.GetBytes(src, str.Length, (byte*)dst, arr.Length * 2);
}
}