0 c#-3.0
请考虑以下代码段
string src = "ibm,tcs";
string dest = src.Split(',').Select(i => i + "();,").ToArray().Aggregate((s, i) => s + i);
dest = dest.Substring(0, dest.Length - 1);
Run Code Online (Sandbox Code Playgroud)
我正在做的是,源字符串(这里是src)将以逗号分隔的方式使用字符串列表.
最终输出将是: ibm();,tcs();
我们可以知道,我的计划正在这样做.
但我正在帮助dest.Substring(0, dest.Length - 1);消除","我在Select Extension方法中构建的最后一个 .
我不喜欢我的这种做法.
这样做还有其他美丽/优雅的方式吗?我相信有人肯定会以更好的方式接近:)
如果我使用Lambda和扩展方法获得解决方案,我也会很高兴.
我正在使用C#3.0和dot net framework 3.5
谢谢
只需使用string.Join而不是Aggregate在Select子句中包含逗号:
string dest = string.Join(",", src.Split(',')
.Select(i => i + "();")
.ToArray());
Run Code Online (Sandbox Code Playgroud)
在.NET 4中,您甚至不需要ToArray()调用(因为已经添加了额外的重载string.Join).
或者,作为一种完全替代的方法:
string dest = src.Replace(",", "();,") + "();";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
130 次 |
| 最近记录: |