String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,这样不仅效率低下,而且大量浪费有限的内存空间。
和 String 类不同的是, StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。 StringBuilder 的方法不是线程安全的(不能同步访问)执行速度快
用string
string sql = "select * from t_books where 1=1";
sql += " and b_name like '%" + name + "%'";
用stringbuilder
var sql =new StringBuilder( "select * from t_books where 1=1");
if(!string.IsNullOrWhiteSpace(name))
{
sql.Append(" and Name like @name");
sqlParameters.Add(new Sqlparameter("@name","%"+name+"%"))