使用LINQ连接字符串

使用LINQ连接字符串

写老派最有效的方法是什么:

StringBuilder sb = new StringBuilder();if (strings.Count > 0){
    foreach (string s in strings)
    {
        sb.Append(s + ", ");
    }
    sb.Remove(sb.Length - 2, 2);}return sb.ToString();

......在LINQ?


守着星空守着你
浏览 508回答 3
3回答

婷婷同学_

这个答案显示Aggregate了问题中所要求的LINQ()的使用,并不适合日常使用。因为这不使用StringBuilder它会对很长的序列产生可怕的性能。对于常规代码使用String.Join,如另一个答案中所示使用这样的聚合查询:string[] words = { "one", "two", "three" };var res = words.Aggregate(    "", // start with empty string to handle empty list case.    (current, next) => current + ", " + next);Console.WriteLine(res);这输出:一二三聚合是一个函数,它接受一组值并返回一个标量值。T-SQL的示例包括min,max和sum。VB和C#都支持聚合。VB和C#都支持聚合作为扩展方法。使用点符号,只需调用IEnumerable对象上的方法即可。请记住,聚合查询会立即执行。更多信息 - MSDN:聚合查询如果你真的想使用CodeMonkeyKing在评论中提出的Aggregate使用变体,它将与常规代码相同,包括对大量对象的良好性能:StringBuilderString.Join var res = words.Aggregate(      new StringBuilder(),       (current, next) => current.Append(current.Length == 0? "" : ", ").Append(next))      .ToString();
打开App,查看更多内容
随时随地看视频慕课网APP