2010-07-29 9 views
1

Comment convertir une chaîne en un tableau ushort ..Comment convertir une chaîne en un tableau ushort

Merci beaucoup pour votre aide.

Merci, Lokesh

+0

Qu'allez-vous à faire avec ce tableau - avez-vous besoin d'un zéro à la fin parce que vous allez lui passer une chaîne terminée par zéro? – Rup

Répondre

3
string s = "test"; 
ushort[] result = s.ToCharArray().Select(c => (ushort)c).ToArray(); 

Je ne sais pas si elle est la meilleure façon, mais il devrait fonctionner.

Modifier: Je ne connaissais pas string mis en œuvre IEnumerable. Donc en fait, vous avez juste besoin de:

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

Merci à Jeff pour l'avoir signalé.

+1

+1, mais pas nécessaire pour convertir la chaîne en tableau. Cela peut être laissé de côté. –

0

Si vous ne souhaitez pas IL vérifiables, la plus rapide (qui évite la copie des données de chaîne entièrement) qui utilise uniquement la bibliothèque standard est d'utiliser la surcharge dangereuse de Encoding.GetBytes:

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