Fin*_*las 2 c# string equality
我正在开发一个函数,它给出了一些设置 - 例如行距,输出(以字符串形式)被修改。为了测试此类场景,我使用字符串文字,如下所示的预期结果。
该方法使用字符串生成器 ( AppendLine) 生成所述输出。我遇到的一个问题是比较这些字符串。在下面的示例中,两者就其所代表的含义而言是相同的。结果是我关心的区域,但是当比较两个字符串时,一个是文字,一个不是,相等自然会失败。这是因为其中一个字符串发出行间距,而另一个字符串仅演示其包含的格式。
解决这个平等问题的最佳方法是什么?我确实关心格式,例如方法结果中的新行,这是至关重要的。
代码:
string expected = @"Test\n\n\nEnd Test.";
string result = "Test\n\n\nEnd Test";
Console.WriteLine(expected);
Console.WriteLine(result);
Run Code Online (Sandbox Code Playgroud)
输出:
测试\n\n\n结束测试。 测试 结束测试
前缀@告诉编译器完全按照写入的方式获取字符串。因此,它不会将\n字符格式化为回车符和换行符。
由于分配给结果变量的字符串没有相同的前缀,因此编译器会对其进行格式化。如果您想继续使用该@前缀,只需执行以下操作:
string expected = @"Test
End Test";
Run Code Online (Sandbox Code Playgroud)
您必须将字符串中的回车符和换行符作为不可见字符输入。
| 归档时间: |
|
| 查看次数: |
2236 次 |
| 最近记录: |