突然要用到把一个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>(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);

}

}

posted on 2007-10-19 16:21 TT.Net 阅读(208) 评论(2)  编辑 收藏

  回复  引用  查看    
2007-10-21 10:55 | 菜菜灰      
new string("s",60)

试试
  回复  引用  查看    
2007-12-23 00:49 | Jeffrey Zhao      
性能方面的问题不进行测试比较是不好说滴,呵呵。

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-12-17 22:10 编辑过


相关链接: