为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…我觉得应该有更好的办法

为ienumerablestring的每个成员添加前缀/后缀;在c#

应该可以:

var result = inputs
             .Select(x => prefix + x)
             .ToList();

它只是为每个输入前缀之前创建一个新字符串,然后将它们放入一个列表中。对于后缀,只需将prefix + x更改为x + suffix

值得一提的是你的代码有两个错误:

  1. 你的str变量应该在foreach循环中是只读的,你不能给它赋值,因为字符串是不可变的,当你调用sb.Append(prefix).Append(str).ToString();时,它会创建一个新的字符串;
  2. 对于这种任务,您不需要StringBuilder,因为当您对一个字符串进行多个连接时,它很有效。在你的例子中,你有几个字符串,每个字符串你只需要与一些变量连接一次。

字符串是不可变的,所以您不能随时修改它们。你可以返回一个新的列表:

IEnumberable<String> AppendString (IEnumerable<String> src, String append)
{
   foreach (String str in src)
      yield return str + append;
}