0

文字列を文字コードを表す短整数の配列に変換する最速の方法は何ですか?

私は現在これを使用していますが、おそらくはるかに高速になる可能性があります。

Dim shortsarray(mystring.Length - 1) as Short
For i As Integer = 0 To mystring.Length - 1
  shortsarray(i) = AscW(mystring.Chars(i))
Next

ありがとう。

4

2 に答える 2

1

あなたがどんな問題を解決しようとしているのかわかりません。ただし、別の方法として、文字列を文字の配列に変換することもできます

Dim chars() As Char = mystring.ToCharArray()
于 2012-04-10T19:46:20.843 に答える
0
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)で実行されるはずです。これは入力の長さに対して線形であり、文字単位の変換を行っているため、そこから期待できる改善はあまりありません。単語全体を一度に変換してコードをよりクリーンにするライブラリがあるかもしれませんが、これはおそらく期待できるほど良いと思います。

パフォーマンスを向上させる必要がある場合は、最初にプログラム全体のプロファイルを作成する必要があります。このスニペットは問題ではない可能性があります。

于 2012-04-10T19:25:41.517 に答える