该答案显示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的注释中建议的
Aggregateuse变体,它将与常规代码相同,包括对大量对象的良好性能:
StringBuilder
String.Join
var res = words.Aggregate( new StringBuilder(), (current, next) => current.Append(current.Length == 0? "" : ", ").Append(next)) .ToString();
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)