この種の質問は、すでに何度も回答されていることを私は知っています。考えられる答えはたくさん見つかりましたが、整数配列を単一の文字列に変換する最速の方法を実装するという私の問題は解決しません。私は例えば:
int[] Result = new int[] { 1753387599, 1353678530, 987001 }
逆にしたいので、追加のコードの前に
Array.Reverse(Result);
最後から反復しませんが、要素を最後から呼び出すため、逆にすることと同じです。だから私はすでにこれをやった。お知らせするために-私のもの以外の解決策を考えられる場合は、このArray.Reverseを使用することをお勧めします。これは、解決策を逆にする必要があるためです。私は常に数字の最後の9桁だけを気にします-モジュロ1 000 000 000のように。これが私が得たいものです:
987001|353678530|753387599
今すぐ明確にするためのセパレーター。.ToString() を使用するよりも約 50% 高速な独自の関数を作成しました。tempint - int 配列の現在の要素、StrArray - 文字列配列。StringBuilder を使用したり、文字列を合計したりする価値はないので、最後に AnswerArr の要素を結合して結果を取得します。IntBase - 1000 個の要素を含む配列。"000" から "999" までの文字列の数字で、0 から 999 までのインデックスが付けられています。
for (i = 0; i < limit; i++)
{
//Some code here
j = 3 * (limit - i);
//Done always
StrArray[j - 1] = IntBase[tempint % 1000];
if (tempint > 999999)
{
//Done in 99/100 cases
StrArray[j - 2] = IntBase[tempint % 1000000 / 1000];
StrArray[j - 3] = IntBase[tempint % 1000000000 / 1000000];
}
else
{
if (tempint > 999)
{
//Done just once
StrArray[j - 2] = IntBase[tempint % 1000 / 1000];
}
}
}
//Some code here
return string.Join(null, StrArray);
この部分の前に多くの計算があり、それらは非常に高速に実行されます。すべてが 714 ミリ秒で完了しますが、整数を合計しないと、わずか 337 ミリ秒です。
助けてくれてありがとう。
よろしく、ランドルフ