C#:如何将文本添加到字符串中的每一行?

标签 c# string implementation

要使以下 (nunit) 测试通过,“MagicFunction”的实现是什么样的?

public MagicFunction_Should_Prepend_Given_String_To_Each_Line()
{
    var str = @"line1
line2
line3";

    var result = MagicFunction(str, "-- ");

    var expected = @"-- line1
-- line2
-- line3";

    Assert.AreEqual(expected, result);
}

最佳答案

string MagicFunction(string str, string prepend)
{
   str = str.Replace("\n", "\n" + prepend);
   str = prepend + str;
   return str;
}

编辑:
正如其他人指出的那样,换行符因环境而异。如果您只打算对在同一环境中创建的文件使用此功能,那么 System.Environment 将正常工作。但是,如果您在 Linux 机器上创建一个文件,然后将其传输到 Windows 机器,您将需要指定不同类型的换行符。由于 Linux 使用\n 而 Windows 使用\r\n 这段代码将适用于 Windows 和 Linux 文件。如果您将 Mac 加入其中 (\r),您将不得不想出一些更复杂的东西。

关于C#:如何将文本添加到字符串中的每一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1466866/

相关文章:

c# - asp.net 未找到 OpenCV 非托管 DLL

c++ - 动态字符串数组,编译错误

algorithm - 有什么聪明的方法可以输出 n 个项目的列表,中间有 (n-1) 个分隔符?

c# - 如何在单个 Linq 表达式中混合 monadic 构造?

c# - 如何检查 C#.NET 3.5 中的对象是否为空?

c# - 单元测试失败后如何强制Visual Studio构建失败

ruby-on-rails - Rails 方法检测空字符串数组( ["", "",...])为空

c++ - C++中如何删除字符串中的子字符串

r - H2O 在 R 中连接失败

java - 无法弄清楚为什么我的三角形类上的 x 和 y 坐标被切换