文字列を文字コードを表す短整数の配列に変換する最速の方法は何ですか?
私は現在これを使用していますが、おそらくはるかに高速になる可能性があります。
Dim shortsarray(mystring.Length - 1) as Short
For i As Integer = 0 To mystring.Length - 1
shortsarray(i) = AscW(mystring.Chars(i))
Next
ありがとう。
あなたがどんな問題を解決しようとしているのかわかりません。ただし、別の方法として、文字列を文字の配列に変換することもできます
Dim chars() As Char = mystring.ToCharArray()
Dim shortsarray(mystring.Length - 1) as Short //One calculation
For i As Integer = 0 To mystring.Length - 1 //One calculation, repeats n times
shortsarray(i) = AscW(mystring.Chars(i)) //Three calculations, repeats n times
Next
結果として、これはO(3n + 1)またはO(n)で実行されるはずです。これは入力の長さに対して線形であり、文字単位の変換を行っているため、そこから期待できる改善はあまりありません。単語全体を一度に変換してコードをよりクリーンにするライブラリがあるかもしれませんが、これはおそらく期待できるほど良いと思います。
パフォーマンスを向上させる必要がある場合は、最初にプログラム全体のプロファイルを作成する必要があります。このスニペットは問題ではない可能性があります。