Как преобразовать строку в массив ushort - PullRequest
1 голос
/ 29 июля 2010

Как преобразовать строку в массив ushort ..

Большое спасибо за помощь.

Спасибо, Локеш

Ответы [ 2 ]

3 голосов
/ 29 июля 2010
string s = "test";
ushort[] result = s.ToCharArray().Select(c => (ushort)c).ToArray();

Не уверен, что это лучший способ, но он должен работать.

Редактировать: Я не знал string реализовано IEnumerable. Так что на самом деле вам просто нужно:

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

Спасибо Джеффу за то, что указал на это.

0 голосов
/ 19 июня 2014

Если вам не требуется проверяемый IL, самый быстрый способ (который позволяет полностью не копировать строковые данные), который использует только стандартную библиотеку, - это использовать небезопасную перегрузку Encoding.GetBytes:

fixed (char* src = str) {
   fixed (ushort* dst = arr) {
       Encoding.Unicode.GetBytes(src, str.Length, (byte*)dst, arr.Length * 2);
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...