如何在stringbuider处插入字符串?

时间:2017-06-21 10:25:03

标签: c# oop stringbuilder

我有以下代码。

Dataset function1 (){
StringBuilder sb = new StringBuilder();
sb.append('abcd');
sb.append('efgh');
for(int i=0 ; i< 8; i++){
    sb.append('ijkl');
    sb.append('monop');
    sb.append('ijkl');
    sb.append('monop');

}
Dataset ds = function2(sb);
if(ds.isempty(){
    StringBuilder sb = new StringBuilder();
    sb.append('abcd');
    sb.append('efgh');
    for(int i=0 ; i< 8; i++){
        sb.append('ijkl');
        sb.append('monop');
        sb.append('ijkl');
        sb.append('464sdfsdfsdfggfdkjkjkjkj');
        sb.append('monop');

    }
    ds = function2(sb);

})
return ds; 

}

我不想在ds.empty()括号中重写相同的代码。 有没有更好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:3)

只需将代码放在自己的方法中:

public StringBuilder GetString(boolean p_appendExtraStrings)
{
    StringBuilder sb = new StringBuilder();
    sb.append('abcd');
    sb.append('efgh');
    for(int i = 0 ; i < 8; i++)
    {
        sb.append('ijkl');
        sb.append('monop');
        sb.append('ijkl');
        if(p_appendExtraStrings)
        {
           sb.append('464sdfsdfsdfggfdkjkjkjkj');
           sb.append('monop');
        }
    }
    return sb;
}

然后您可以通过调用此方法替换当前的StringBuilder代码

Dataset function1()
{
   Dataset ds = function2(GetString(false));
   if(ds.isEmpty()
   {
      ds = function2(GetString(true));
   }
   return ds;
}