さまざまな進行値を扱う場合、多くの場合、事前変換が必要です。構築された-Inメソッドは限られた変換をサポートしていますが、.NETには一般的な目的変換メカニズムがありません。
カスタム変換関数Convert.ToString
進歩の変容を実現するために、それはそれ自体の実用的な機能を実現できます。簡単な方法は、目標の数字を極めて分割し、残りの数字を反対の順序で蓄積することです。 パフォーマンスの最適化
多数の場合、上記の方法は、文字列接続の代わりにアレイバッファーを使用して最適化できます。
<code class="language-csharp">public static string IntToString(int value, char[] baseChars) { string result = string.Empty; int targetBase = baseChars.Length; do { result = baseChars[value % targetBase] + result; value = value / targetBase; } while (value > 0); return result; }</code>
この方法は、多数(特にターゲットベースでより長い表現を生成した人)に対してはるかに高速です。ただし、1桁の場合、元のメソッドの方が高速になる場合があります。
カスタムファンデーション文字を使用します<code class="language-csharp">public static string IntToStringFast(int value, char[] baseChars) { // 基数为2且值为int.MaxValue时的最坏情况缓冲区大小 int i = 32; char[] buffer = new char[i]; int targetBase = baseChars.Length; do { buffer[--i] = baseChars[value % targetBase]; value = value / targetBase; } while (value > 0); return new string(buffer, i, 32 - i); }</code>
任意のベース文字の配列を指定できるようにします。これは、ヘキサディック(ベース26、大文字の使用および小文字の使用)または60個のプルーフ(ベース60)などのカスタムベースを使用できます。 IntToString
以上が.NETでベース変換を効率的に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。