突然要用到把一個String重復N遍不是循環的方法,結果居然沒有。
CSDN上找了下,人家也說沒有,方法找到很多,看到一個效率最高的。
public static string RepeatString(string str, int n)
{
char[] arr = str.ToCharArray();
char[] arrDest = new char[arr.Length * n];
for (int i = 0; i < n; i++)
{
Buffer.BlockCopy(arr, 0, arrDest, i * arr.Length * 2, arr.Length * 2);
}
return new string(arrDest);
}
感覺是內存分配上面效率高吧,可能~~:)
把這個方法改成泛型會不會就沒效率了呢?
public static string RepeatString(T str, int n)
{
string s = str.ToString();
char[] arr = s.ToCharArray();
char[] arrDest = new char[arr.Length * n];
for (int i = 0; i < n; i++)
{
Buffer.BlockCopy(arr, 0, arrDest, i * arr.Length * 2, arr.Length * 2);
}
return new string(arrDest);
}
}