为了账号安全,请及时绑定邮箱和手机立即绑定

使用LINQ连接字符串

使用LINQ连接字符串

C#
守着星空守着你 2019-08-15 14:26:58
使用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?
查看完整描述

3 回答

?
婷婷同学_

TA贡献1844条经验 获得超8个赞

这个答案显示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();


查看完整回答
反对 回复 2019-08-15
  • 3 回答
  • 0 关注
  • 507 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信