为ienumerablestring的每个成员添加前缀/后缀;在c#
本文关键字:后缀 加前缀 添加 ienumerablestring 成员 | 更新日期: 2023-09-27 18:06:05
是否有一种简单的方法可以为IEnumerable的每个成员添加前缀或后缀?我想不出一个方法除了(输入是IEnumerable):
var sb = new StringBuilder();
foreach (var str in inputs) {
str = sb.Append(prefix).Append(str).ToString();
sb.clear();
}
但是这不会让我赋值回str…我觉得应该有更好的办法
应该可以:
var result = inputs
.Select(x => prefix + x)
.ToList();
它只是为每个输入在前缀之前创建一个新字符串,然后将它们放入一个列表中。对于后缀,只需将prefix + x
更改为x + suffix
。
值得一提的是你的代码有两个错误:
- 你的
str
变量应该在foreach循环中是只读的,你不能给它赋值,因为字符串是不可变的,当你调用sb.Append(prefix).Append(str).ToString();
时,它会创建一个新的字符串; - 对于这种任务,您不需要
StringBuilder
,因为当您对一个字符串进行多个连接时,它很有效。在你的例子中,你有几个字符串,每个字符串你只需要与一些变量连接一次。
字符串是不可变的,所以您不能随时修改它们。你可以返回一个新的列表:
IEnumberable<String> AppendString (IEnumerable<String> src, String append)
{
foreach (String str in src)
yield return str + append;
}