none
对List<string>对象的循环过程中对每一个元素进行拼接和修改,并将修改后的赋值给每一个元素,有必要在循环过程中用到StringBuilder吗?

    问题

  • StringBuilder,这个类,我在长字符串的拼接用过这个类。但是如果是对泛型集合中的实体对象某个字符串属性全部做修改,修改的动作是截取字符串,拼接其他字符串,这个时候有必要用到StringBuilder吗?

    foreach(string str in List<string>){

        //对str 对象执行截取字符,拼接其他字符等,之后将执行结果的字符串赋值给str 。这个过程有必要用到StringBuilder吗

    }



    2016年12月22日 5:58

答案

全部回复

  • 可以用StringBuilder,也可以用一个泛型集合将截取后的结果保存为List<string>,最后调用string.Join(",", list)转化为一个字符串


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2016年12月22日 6:10
  • Hi 轮回的齿轮,

    这个得看你个人感觉哪个实现起来更快一些,如果是我,我肯定使用自己熟练的方法来解决问题。在.NET 上面开发程序,我还是比较喜欢用现成的东西,快,而且还稳定。

    Best Regards,

    Hart


    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2016年12月22日 7:23
    版主
  • StringBuilder,这个类,我在长字符串的拼接用过这个类。但是如果是对泛型集合中的实体对象某个字符串属性全部做修改,修改的动作是截取字符串,拼接其他字符串,这个时候有必要用到StringBuilder吗?

    foreach(string str in List<string>){

        //对str 对象执行截取字符,拼接其他字符等,之后将执行结果的字符串赋值给str 。这个过程有必要用到StringBuilder吗

    }



    应该用。

    因为String如果使用+的运算符重载,会导致重新分配内存(String是一个Immutible的类型)。

    如Hart Cheng所言,直接用String.Join<string>(",",List<string>)也可以。


    ASP.NET Forum
    StackOverFlow
    FreeRice Donate
    Issues to report



    2016年12月24日 9:59
    版主