Swift中map+reduce生成换行符串的代码如何转为C#?
把Swift换行符拼接代码转成C#的解决方案
嘿,刚好能帮你理清这个转换!先明确下你那段Swift代码的作用:生成linesCount个换行符\n拼接成的字符串,比如linesCount=3时结果就是"\n\n\n"。
你已经找对了方向——用Enumerable.Range+Select+Aggregate的组合,只是参数需要调整下,下面是完全匹配原Swift逻辑的C#代码:
// 先定义你的linesCount整数 int linesCount = 3; var lines = Enumerable.Range(0, linesCount) .Select(_ => "\n") .Aggregate("", (current, next) => current + next);
拆解对应原Swift代码的每一步:
Enumerable.Range(0, linesCount):对应Swift里的0..<linesCount,生成包含linesCount个元素的序列(从0到linesCount-1),保证元素数量和原代码一致.Select(_ => "\n"):对应Swift的map({ _ in "\n" }),_表示忽略当前遍历的元素,直接返回换行符字符串,和原逻辑完全对齐.Aggregate("", (current, next) => current + next):对应Swift的reduce("", +),初始值是空字符串"",然后把每个换行符依次拼接到当前结果上,(current, next) => current + next就等价于Swift里用+做拼接的逻辑
额外优化小提示:
如果追求代码简洁和性能(因为Aggregate拼接字符串会多次创建新字符串),可以用string.Concat直接生成结果,写法更短:
var lines = string.Concat(Enumerable.Repeat("\n", linesCount));
内容的提问来源于stack exchange,提问作者Leze
相关产品推荐
相关产品推荐

