繁体   English   中英

带有多个双引号和“/”斜杠的 C# 字符串

[英]C# string with multiple double quotes & "/" slashes

我有一个这样的字符串

'Name.ToLower().Contains ("") And Created < ("05/12/2022 01:41:16") And Disabled == false'

如何在 C# 中处理这个问题?

我试过在前面加上@"""等。

点网小提琴

var a = @"'Name.ToLower().Contains ("""") And Created < (""05/12/2022"") And ExpandOnStart == false'";

像这样?

显然,您必须以某种方式转义特殊字符。 在较旧的 C# 中使用逐字字符串https ://dotnetfiddle.net/8OtiKP

@"'Name.ToLower().Contains ("""") And Created < (""05/12/2022"") And ExpandOnStart == false'"

如您所见, "仍然需要使用""进行转义,但包括\在内的所有其他字符都可以保持原样

在 C#11 中有一个更好的解决方案:根本不需要转义"原始字符串文字

"""'Name.ToLower().Contains ("") And Created < ("05/12/2022 01:41:16") And Disabled == false'"""

这是一种有点不同的方法,但您提到字符串是通过附加其他字符串创建的,所以它可能会有所帮助。

var createdDate = "05/12/2022";
var name = "some name";
var expandOnStart = "false";

var theString = $"Name.ToLower().Contains(\"{name}\") And Created < (\"{createdDate}\") And ExpandOnStart == \"{expandOnStart}\"";

// theString = Name.ToLower().Contains("some name") And Created < ("05/12/2022") And ExpandOnStart == "false"

https://dotnetfiddle.net/oq3UYq

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM